must ensure that nArgs and nVar flag setting is correct
authorClaus Gittinger <cg@exept.de>
Wed, 20 Dec 2000 00:24:08 +0100
changeset 5766 64d22218e98b
parent 5765 152a485288d9
child 5767 b98740fd49cc
must ensure that nArgs and nVar flag setting is correct
Block.st
--- a/Block.st	Tue Dec 19 18:19:59 2000 +0100
+++ b/Block.st	Wed Dec 20 00:24:08 2000 +0100
@@ -322,11 +322,20 @@
     "create a new cheap (homeless) block.
      Not for public use - this is a special hook for the compiler."
 
+    ^ self
+        byteCode:bCode numArgs:numArgs numVars:0 numStack:nStack sourcePosition:sourcePos initialPC:initialPC literals:literals
+!
+
+byteCode:bCode numArgs:numArgs numVars:numVars numStack:nStack sourcePosition:sourcePos initialPC:initialPC literals:literals
+    "create a new cheap (homeless) block.
+     Not for public use - this is a special hook for the compiler."
+
     |newBlock|
 
     newBlock := (super basicNew:(literals size)) 
                            byteCode:bCode
                            numArgs:numArgs
+                           numVars:numVars
                            numStack:nStack
                      sourcePosition:sourcePos
                           initialPC:initialPC
@@ -362,6 +371,20 @@
     "Modified: 23.4.1996 / 15:55:58 / cg"
 ! !
 
+!Block methodsFor:'Camp Smalltalk'!
+
+sunitEnsure: aBlock 
+	^self valueNowOrOnUnwindDo: aBlock
+
+    "Created: / 20.6.2000 / 11:59:32 / Sames"
+    "Modified: / 20.6.2000 / 12:27:10 / Sames"
+!
+
+sunitOn: aSignal do: anExceptionBlock 
+	^self on: aSignal do: anExceptionBlock
+
+    "Created: / 20.6.2000 / 12:27:57 / Sames"
+! !
 
 !Block methodsFor:'Compatibility - ANSI'!
 
@@ -1459,7 +1482,7 @@
 
 !Block methodsFor:'private accessing'!
 
-byteCode:bCode numArgs:numArgs numStack:numStack sourcePosition:srcPos initialPC:iPC literals:lits
+byteCode:bCode numArgs:numArgs numVars:numVars  numStack:numStack sourcePosition:srcPos initialPC:iPC literals:lits
     "set all relevant internals.
      DANGER ALERT: this interface is strictly private."
 
@@ -1470,6 +1493,8 @@
     flags := 0.
     self stackSize:numStack.
     self literals:lits.
+    self numberOfArgs:numArgs.   "/ must set the compiledCode flags as well
+    self numberOfVars:numVars.   "/ must set the compiledCode flags as well
 
     "Modified: 23.4.1996 / 16:05:30 / cg"
     "Modified: 24.6.1996 / 12:37:37 / stefan"
@@ -1761,6 +1786,6 @@
 !Block class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.98 2000-12-13 13:15:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.99 2000-12-19 23:24:08 cg Exp $'
 ! !
 Block initialize!