class: UndefinedObject
authorClaus Gittinger <cg@exept.de>
Wed, 10 Jun 2015 02:39:28 +0200
changeset 18480 d024e283fb68
parent 18479 edff93c290bb
child 18481 2d8c1c806f1a
class: UndefinedObject changed: #subclass:instanceVariableNames:classVariableNames:poolDictionaries:privateIn:
UndefinedObject.st
--- a/UndefinedObject.st	Wed Jun 10 02:39:01 2015 +0200
+++ b/UndefinedObject.st	Wed Jun 10 02:39:28 2015 +0200
@@ -11,6 +11,8 @@
 "
 "{ Package: 'stx:libbasic' }"
 
+"{ NameSpace: Smalltalk }"
+
 Object subclass:#UndefinedObject
 	instanceVariableNames:''
 	classVariableNames:'CreateMinimumProtocolInNewSubclassQuery'
@@ -108,7 +110,6 @@
     "Modified: 3.1.1997 / 15:06:15 / cg"
 ! !
 
-
 !UndefinedObject class methodsFor:'queries'!
 
 canBeSubclassed
@@ -155,8 +156,6 @@
 
 
 
-
-
 !UndefinedObject methodsFor:'converting'!
 
 asBoolean
@@ -300,6 +299,7 @@
     ^ 0
 ! !
 
+
 !UndefinedObject methodsFor:'subclass creation'!
 
 nilSubclass:action
@@ -453,10 +453,18 @@
 
 !UndefinedObject methodsFor:'subclass creation-private'!
 
-subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:ownerClass
+subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:ownerClassArg
     "create a new private class which has nil as superclass 
      - i.e. traps into #doesNotUnderstand: for all of its messages."
 
+    |category ownerClass|
+    
+    (ownerClass := ownerClassArg) isNil ifTrue:[
+        self error:'Nil (undefined) owner class - proceed to define as global' mayProceed:true.
+    ] ifFalse:[
+        category := ownerClassArg category
+    ].
+    
     ^ self 
         nilSubclass:[
                 Object class
@@ -469,7 +477,7 @@
                     pointers:true
                     classVariableNames:classVarString
                     poolDictionaries:pool
-                    category:ownerClass category
+                    category:category
                     comment:nil
                     changed:true
         ]
@@ -721,15 +729,14 @@
     ^ aVisitor visitNilWith:aParameter
 ! !
 
-
 !UndefinedObject class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.78 2014-10-26 01:31:37 vrany Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.78 2014-10-26 01:31:37 vrany Exp $'
+    ^ '$Header$'
 ! !