# HG changeset patch # User Claus Gittinger # Date 977268248 -3600 # Node ID 64d22218e98ba45b786f0be39fd84966bfcb686e # Parent 152a485288d9677628f8337b96307644a50ccda2 must ensure that nArgs and nVar flag setting is correct diff -r 152a485288d9 -r 64d22218e98b 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!