UndefinedObject.st
changeset 1461 dd25bb1e9973
parent 1303 8fdc2c653d13
child 1638 8df0060e4d73
--- a/UndefinedObject.st	Thu Jun 13 00:07:54 1996 +0200
+++ b/UndefinedObject.st	Thu Jun 13 00:11:10 1996 +0200
@@ -10,6 +10,8 @@
  hereby transferred.
 "
 
+'From Smalltalk/X, Version:2.10.9 on 12-jun-1996 at 11:56:25'                   !
+
 Object subclass:#UndefinedObject
 	instanceVariableNames:''
 	classVariableNames:''
@@ -177,34 +179,23 @@
      The methods get a modified source code to remind you that these
      methods were automatically generated."
 
-    |newClass mA|
+    |newClass methodDict method|
 
-    Class withoutUpdatingChangesDo:
-    [
+    Class withoutUpdatingChangesDo:[
         newClass := Object perform:selector withArguments:args
     ].
     newClass notNil ifTrue:[
         newClass setSuperclass:nil.
 
-        newClass selectorArray size == 0 ifTrue:[
-        "
-         copy over method objects from Object
-        "
-        newClass 
-            setSelectors:(Array 
-                            with:#class
-                            with:#isBehavior 
-                            with:#doesNotUnderstand:)
-            methods:(mA := Array 
-                            with:(Object compiledMethodAt:#class) copy
-                            with:(Object compiledMethodAt:#isBehavior) copy
-                            with:(Object compiledMethodAt:#doesNotUnderstand:) copy).
-
-        "
-         and modify the source code
-        "
-        mA do:[:m |
-            m source:m source , '
+        newClass methodDictionary size == 0 ifTrue:[
+            "
+             copy over method objects from Object
+             and modify the source code
+            "
+            methodDict := MethodDictionary new:3.
+            #(#class #isBehavior #doesNotUnderstand) do:[:sel|
+                method := (Object compiledMethodAt:sel) copy.
+                method source: method source , '
 "
 *** WARNING
 ***
@@ -216,13 +207,16 @@
 *** if you remove/change this method. 
 "
 '.
+                methodDict at:sel put:method.
             ].
+            newClass methodDictionary:methodDict.
             Class addChangeRecordForClass:newClass.
         ]
     ].
     ^ newClass
 
     "Modified: 28.2.1996 / 15:47:41 / cg"
+    "Modified: 12.6.1996 / 10:46:15 / stefan"
 !
 
 subclass:t instanceVariableNames:f classVariableNames:d poolDictionaries:s category:cat
@@ -296,5 +290,5 @@
 !UndefinedObject class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.23 1996-04-26 07:12:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.24 1996-06-12 22:11:08 stefan Exp $'
 ! !