MessageNode.st
changeset 528 0a35ed44989f
parent 437 994414f5126a
child 531 1d037c37e5a2
--- a/MessageNode.st	Sun May 25 15:09:11 1997 +0200
+++ b/MessageNode.st	Tue May 27 14:29:20 1997 +0200
@@ -1350,18 +1350,20 @@
     theReceiver codeOn:aStream inBlock:b for:aCompiler.
 
     lateEval := false.
+
     valueNeeded ifTrue:[
+        "/ easily reconstructable - no need to keep on stack
         theReceiver isConstant ifTrue:[
             (theReceiver evaluate isMemberOf:SmallInteger) ifTrue:[
                 lateEval := true.
             ]
         ].
+        lateEval ifFalse:[
+            aStream nextPut:#dup
+        ].
     ].
-    lateEval ifFalse:[aStream nextPut:#dup].
 
     pos := aStream position.
-"/    aStream nextPut:#dup; nextPut:#push0; nextPut:#>; nextPut:lineNr; nextPut:#falseJump.
-"/    aStream nextPut:#dup; nextPut:#gt0; nextPut:lineNr; nextPut:#falseJump.
     aStream nextPut:#pushgt0; nextPut:lineNr; nextPut:#falseJump.
     pos2 := aStream position.
     aStream nextPut:0.
@@ -1370,12 +1372,12 @@
     aStream nextPut:#minus1; nextPut:lineNr; nextPut:#jump; nextPut:pos.
 
     (aStream contents) at:pos2 put:(aStream position).
-    aStream nextPut:#drop.
+    aStream nextPut:#drop.  "/ drop run variable
     lateEval ifTrue:[
         theReceiver codeOn:aStream inBlock:b for:aCompiler.
     ]
 
-    "Modified: 8.10.1996 / 14:44:49 / cg"
+    "Modified: 27.5.1997 / 14:28:49 / cg"
 !
 
 codeWhileOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
@@ -1803,5 +1805,5 @@
 !MessageNode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.63 1996-11-11 13:31:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.64 1997-05-27 12:29:20 cg Exp $'
 ! !