Method.st
changeset 1855 6a61275c5adf
parent 1851 4accc9fafd19
child 1870 2623b60c27e1
--- a/Method.st	Fri Nov 01 17:31:39 1996 +0100
+++ b/Method.st	Fri Nov 01 17:52:36 1996 +0100
@@ -1754,10 +1754,14 @@
     "
      |m|
      m := Object compiledMethodAt:#at:.
-     m containingClass
+     m containingClass   
+
+     |m|
+     m := Object class compiledMethodAt:#version.
+     m containingClass   
     "
 
-    "Modified: 1.11.1996 / 16:25:13 / cg"
+    "Modified: 1.11.1996 / 17:47:06 / cg"
 !
 
 hasPrimitiveCode
@@ -2031,13 +2035,14 @@
      being garbage collected)
     "
     LastWhoClass notNil ifTrue:[
-        cls := Smalltalk at:LastWhoClass.
+        cls := Smalltalk at:LastWhoClass ifAbsent:nil.
         cls notNil ifTrue:[
             sel := cls selectorAtMethod:self.
             sel notNil ifTrue:[
                 ^ MethodWhoInfo class:cls selector:sel
 "/                ^ Array with:cls with:sel
             ].
+
             cls := cls class.
             sel := cls selectorAtMethod:self.
             sel notNil ifTrue:[
@@ -2080,7 +2085,16 @@
 
         sel := aClass class selectorAtMethod:self.
         sel notNil ifTrue:[ 
-            ^ MethodWhoInfo class:aClass selector:sel
+            aClass isMeta ifTrue:[
+                cls := aClass soleInstance.
+                cls notNil ifTrue:[
+                    LastWhoClass := cls name
+                ].
+            ] ifFalse:[
+                LastWhoClass := aClass name.
+            ].
+
+            ^ MethodWhoInfo class:aClass class selector:sel
 "/            ^ Array with:aClass class with:sel
         ].
     ].
@@ -2129,7 +2143,7 @@
      m who
     "
 
-    "Modified: 1.11.1996 / 16:40:24 / cg"
+    "Modified: 1.11.1996 / 17:51:27 / cg"
 !
 
 wrapper
@@ -2222,6 +2236,6 @@
 !Method class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Method.st,v 1.105 1996-11-01 15:41:16 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Method.st,v 1.106 1996-11-01 16:52:36 cg Exp $'
 ! !
 Method initialize!