use new Method>>who interface
authorClaus Gittinger <cg@exept.de>
Fri, 01 Nov 1996 17:15:44 +0100
changeset 1852 89b2328f4203
parent 1851 4accc9fafd19
child 1853 09cd1e8df9a2
use new Method>>who interface
BContext.st
BlockContext.st
CheapBlk.st
CheapBlock.st
--- a/BContext.st	Fri Nov 01 16:41:16 1996 +0100
+++ b/BContext.st	Fri Nov 01 17:15:44 1996 +0100
@@ -126,7 +126,7 @@
      return something useful, even in case internals of the system
      got corrupted ... (i.e. avoid messageNotUnderstood here)"
 
-    |cls who mHome m className 
+    |cls who mHome m className sel 
      sender selSender tryVars possibleBlocks method mWho|
 
     (home isNil or:[home isContext not]) ifTrue:[
@@ -134,9 +134,9 @@
          mhmh - an optimized blocks context
          should get the block here, and get the method from
          that one ...
-         ... but in 2.10.x, there is no easy way to get to the block
+         ... but in 2.x, there is no easy way to get to the block
          since that one is not in the context.
-         Starting with 2.11, the new block calling scheme will fix this.
+         Starting with 3.x, the new block calling scheme will fix this.
         "
 
         "temporary kludge - peek into the sender context.
@@ -170,7 +170,7 @@
                         ^ '[] (optimized) in ???'.
                     ].
                     ^ '[] (optimized) in ' , 
-                      (mWho at:1) name , '-' , (mWho at:2).
+                      mWho methodClass name , '-' , mWho selector.
                 ].
             ]
         ].
@@ -188,8 +188,8 @@
      kludge to avoid slow search for containing class
     "
     mHome selector == #doIt ifTrue:[
-        who := Array with:mHome receiver class
-                     with:#doIt
+        sel := #doIt.
+        cls := mHome receiver class.
     ] ifFalse:[
         m := mHome method.
         m isNil ifTrue:[
@@ -197,24 +197,31 @@
             ^ '[] in ???'
         ].
         who := m who.
-    ].
-    who notNil ifTrue:[
-        cls := who at:1
-    ] ifFalse:[
-        cls := receiver class.
+        who notNil ifTrue:[
+            cls := who methodClass
+        ] ifFalse:[
+            cls := receiver class.
+        ].
+        sel := mHome selector printString.
     ].
-    className := cls name.
-    className isNil ifTrue:[
-        'BCONTEXT: nameless class' errorPrintNL.
+
+    cls isNil ifTrue:[
+        'BCONTEXT: no home class' errorPrintNL.
         className := '???'
+    ] ifFalse:[
+        className := cls name.
+        className isNil ifTrue:[
+            'BCONTEXT: nameless class' errorPrintNL.
+            className := '???'
+        ]
     ].
-    ^ '[] in ' , className , '-' , mHome selector printString
+    ^ '[] in ' , className , '-' , sel
 
-    "Modified: 29.5.1996 / 13:56:47 / cg"
+    "Modified: 1.11.1996 / 16:19:25 / cg"
 ! !
 
 !BlockContext class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/BContext.st,v 1.22 1996-05-29 13:19:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/BContext.st,v 1.23 1996-11-01 16:15:20 cg Exp $'
 ! !
--- a/BlockContext.st	Fri Nov 01 16:41:16 1996 +0100
+++ b/BlockContext.st	Fri Nov 01 17:15:44 1996 +0100
@@ -126,7 +126,7 @@
      return something useful, even in case internals of the system
      got corrupted ... (i.e. avoid messageNotUnderstood here)"
 
-    |cls who mHome m className 
+    |cls who mHome m className sel 
      sender selSender tryVars possibleBlocks method mWho|
 
     (home isNil or:[home isContext not]) ifTrue:[
@@ -134,9 +134,9 @@
          mhmh - an optimized blocks context
          should get the block here, and get the method from
          that one ...
-         ... but in 2.10.x, there is no easy way to get to the block
+         ... but in 2.x, there is no easy way to get to the block
          since that one is not in the context.
-         Starting with 2.11, the new block calling scheme will fix this.
+         Starting with 3.x, the new block calling scheme will fix this.
         "
 
         "temporary kludge - peek into the sender context.
@@ -170,7 +170,7 @@
                         ^ '[] (optimized) in ???'.
                     ].
                     ^ '[] (optimized) in ' , 
-                      (mWho at:1) name , '-' , (mWho at:2).
+                      mWho methodClass name , '-' , mWho selector.
                 ].
             ]
         ].
@@ -188,8 +188,8 @@
      kludge to avoid slow search for containing class
     "
     mHome selector == #doIt ifTrue:[
-        who := Array with:mHome receiver class
-                     with:#doIt
+        sel := #doIt.
+        cls := mHome receiver class.
     ] ifFalse:[
         m := mHome method.
         m isNil ifTrue:[
@@ -197,24 +197,31 @@
             ^ '[] in ???'
         ].
         who := m who.
-    ].
-    who notNil ifTrue:[
-        cls := who at:1
-    ] ifFalse:[
-        cls := receiver class.
+        who notNil ifTrue:[
+            cls := who methodClass
+        ] ifFalse:[
+            cls := receiver class.
+        ].
+        sel := mHome selector printString.
     ].
-    className := cls name.
-    className isNil ifTrue:[
-        'BCONTEXT: nameless class' errorPrintNL.
+
+    cls isNil ifTrue:[
+        'BCONTEXT: no home class' errorPrintNL.
         className := '???'
+    ] ifFalse:[
+        className := cls name.
+        className isNil ifTrue:[
+            'BCONTEXT: nameless class' errorPrintNL.
+            className := '???'
+        ]
     ].
-    ^ '[] in ' , className , '-' , mHome selector printString
+    ^ '[] in ' , className , '-' , sel
 
-    "Modified: 29.5.1996 / 13:56:47 / cg"
+    "Modified: 1.11.1996 / 16:19:25 / cg"
 ! !
 
 !BlockContext class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/BlockContext.st,v 1.22 1996-05-29 13:19:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/BlockContext.st,v 1.23 1996-11-01 16:15:20 cg Exp $'
 ! !
--- a/CheapBlk.st	Fri Nov 01 16:41:16 1996 +0100
+++ b/CheapBlk.st	Fri Nov 01 17:15:44 1996 +0100
@@ -106,7 +106,7 @@
 printOn:aStream
     "append a a printed representation of the block to aStream"
 
-    |class selector pair|
+    |who|
 
     "
      cheap blocks have no home context, but a method instead
@@ -117,24 +117,24 @@
      find out, for which class this method was for ...
     "
     method notNil ifTrue:[
-	pair := method who.
-	pair notNil ifTrue:[
-	    class := pair at:1.
-	    selector := pair at:2.
-	    aStream nextPutAll:(class name , '-' , selector).
-	    aStream nextPutAll:' (optimized)'.
-	    ^ self
-	].
+        who := method who.
+        who notNil ifTrue:[
+            aStream nextPutAll:(who methodClass name , '-' , who methodSelector).
+            aStream nextPutAll:' (optimized)'.
+            ^ self
+        ].
     ].
     "
      currently, some cheap blocks don't know where they have been created
     "
     aStream nextPutAll:' ??? (optimized)'.
     ^ self
+
+    "Modified: 1.11.1996 / 16:21:19 / cg"
 ! !
 
 !CheapBlock class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/CheapBlk.st,v 1.15 1996-10-21 13:05:28 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/CheapBlk.st,v 1.16 1996-11-01 16:15:44 cg Exp $'
 ! !
--- a/CheapBlock.st	Fri Nov 01 16:41:16 1996 +0100
+++ b/CheapBlock.st	Fri Nov 01 17:15:44 1996 +0100
@@ -106,7 +106,7 @@
 printOn:aStream
     "append a a printed representation of the block to aStream"
 
-    |class selector pair|
+    |who|
 
     "
      cheap blocks have no home context, but a method instead
@@ -117,24 +117,24 @@
      find out, for which class this method was for ...
     "
     method notNil ifTrue:[
-	pair := method who.
-	pair notNil ifTrue:[
-	    class := pair at:1.
-	    selector := pair at:2.
-	    aStream nextPutAll:(class name , '-' , selector).
-	    aStream nextPutAll:' (optimized)'.
-	    ^ self
-	].
+        who := method who.
+        who notNil ifTrue:[
+            aStream nextPutAll:(who methodClass name , '-' , who methodSelector).
+            aStream nextPutAll:' (optimized)'.
+            ^ self
+        ].
     ].
     "
      currently, some cheap blocks don't know where they have been created
     "
     aStream nextPutAll:' ??? (optimized)'.
     ^ self
+
+    "Modified: 1.11.1996 / 16:21:19 / cg"
 ! !
 
 !CheapBlock class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CheapBlock.st,v 1.15 1996-10-21 13:05:28 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CheapBlock.st,v 1.16 1996-11-01 16:15:44 cg Exp $'
 ! !