MessageTracer.st
changeset 10 676ce0471de4
parent 9 f5b6ab00bdf6
child 11 3553d053d5b8
--- a/MessageTracer.st	Thu Jun 02 19:20:20 1994 +0200
+++ b/MessageTracer.st	Fri Aug 05 03:07:58 1994 +0200
@@ -20,6 +20,8 @@
 MessageTracer comment:'
 COPYRIGHT (c) 1994 by Claus Gittinger
               All Rights Reserved
+
+$Header: /cvs/stx/stx/libbasic3/MessageTracer.st,v 1.3 1994-08-05 01:07:02 claus Exp $
 '!
 
 !MessageTracer class methodsFor:'documentation'!
@@ -40,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic3/MessageTracer.st,v 1.2 1994-06-02 17:19:55 claus Exp $
+$Header: /cvs/stx/stx/libbasic3/MessageTracer.st,v 1.3 1994-08-05 01:07:02 claus Exp $
 "
 !
 
@@ -256,13 +258,13 @@
      ExitBlock will be called, when the method is left, and get context and 
      the methods return value as arguments."
 
-    |parser selector args nArgs class trapMethod s spec lits src idx|
+    |selector class trapMethod s spec lits src idx|
 
     "
      create a new method, which calls the original one,
      but only if not already being trapped.
     "
-    aMethod isWrapped ifTrue:[
+    (aMethod isNil or:[aMethod isWrapped]) ifTrue:[
         ^ aMethod
     ].
 
@@ -393,9 +395,9 @@
 unwrapMethod:aMethod 
     "remove any wrapper on aMethod"
 
-    |parser selector args nArgs class originalMethod s spec lits src idx|
+    |selector class originalMethod idx|
 
-    aMethod isWrapped ifFalse:[
+    (aMethod isNil or:[aMethod isWrapped]) ifFalse:[
         ^ aMethod
     ].
 
@@ -404,7 +406,7 @@
     "
     class := aMethod containingClass.
     class isNil ifTrue:[
-        self error:'cannot place trap (no containing class found)'.
+        'no containing class for method found' printNL.
         ^ aMethod
     ].
     selector := class selectorForMethod:aMethod.
@@ -445,7 +447,7 @@
      ExitBlock will be called, when the method is left, and get context and the methods return value as arguments.
     "
 
-    |parser sourceString selector args nArgs newClass orgClass myMetaclass trapMethod s spec lits src idx|
+    |myMetaclass trapMethod s spec lits idx newClass|
 
     "
      create a new method, which calls the original one,
@@ -467,7 +469,7 @@
     s nextPutAll:'^ retVal'; cr.
 
     trapMethod := Compiler compile:s contents 
-                          forClass:newClass 
+                          forClass:aClass 
                         inCategory:'trapping'
                          notifying:nil
                            install:false
@@ -820,7 +822,8 @@
          onEntry:[:con | 
                      'enter ' errorPrint. methodName errorPrint. 
                      ' receiver=' errorPrint. con receiver printString errorPrint.
-                     ' args=' errorPrint. (con args) printString errorPrintNL.
+                     ' args=' errorPrint. (con args) printString errorPrint.
+                     ' from:' errorPrint. con sender errorPrintNL.
                  ]
          onExit:[:con :retVal |
                      'leave ' errorPrint. methodName errorPrint. 
@@ -919,7 +922,8 @@
                                           '>>' errorPrint.
                                           con selector errorPrint. 
                      ' receiver=' errorPrint. con receiver printString errorPrint.
-                     ' args=' errorPrint. (con args) printString errorPrintNL.
+                     ' args=' errorPrint. (con args) printString errorPrint.
+                     ' from:' errorPrint. con sender errorPrintNL.
                  ]
          onExit:[:con :retVal |
                      'leave ' errorPrint. con receiver class name errorPrint. 
@@ -984,7 +988,8 @@
                                           '>>' errorPrint.
                                           con selector errorPrint. 
                      ' receiver=' errorPrint. con receiver printString errorPrint.
-                     ' args=' errorPrint. (con args) printString errorPrintNL.
+                     ' args=' errorPrint. (con args) printString errorPrint.
+                     ' from:' errorPrint. con sender errorPrintNL.
                  ]
          onExit:[:con :retVal |
                      'leave ' errorPrint. con receiver class name errorPrint.