oops - must setup the isBLOCK / isBLOCKLIKE flags correctly
authorClaus Gittinger <cg@exept.de>
Sat, 01 Apr 2000 15:28:48 +0200
changeset 5351 f9529bd6b6e4
parent 5350 b4c57faa79d5
child 5352 61dfc2af0ab4
oops - must setup the isBLOCK / isBLOCKLIKE flags correctly
VarArgBlock.st
VarArgCheapBlock.st
--- a/VarArgBlock.st	Sat Apr 01 15:05:54 2000 +0200
+++ b/VarArgBlock.st	Sat Apr 01 15:28:48 2000 +0200
@@ -12,7 +12,9 @@
 
 
 
-Block subclass:#VarArgBlock
+"{ Package: 'stx:libbasic' }"
+
+Block variableSubclass:#VarArgBlock
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
@@ -89,6 +91,24 @@
     "Created: 23.1.1997 / 04:57:26 / cg"
 ! !
 
+!VarArgBlock class methodsFor:'initialization'!
+
+initialize
+    "must clear the is-block flag bit in the class
+     (otherwise, the VM might try to inline value-messages)"
+
+    flags := flags bitClear:(Behavior flagBlock).
+    flags := flags bitOr:(Behavior flagBlockLike).
+
+    "
+     self flags.       
+     self initialize.
+     self flags.      
+    "
+
+
+! !
+
 !VarArgBlock methodsFor:'evaluation'!
 
 value
@@ -218,5 +238,6 @@
 !VarArgBlock class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/VarArgBlock.st,v 1.2 1997-01-23 12:38:43 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/VarArgBlock.st,v 1.3 2000-04-01 13:28:48 cg Exp $'
 ! !
+VarArgBlock initialize!
--- a/VarArgCheapBlock.st	Sat Apr 01 15:05:54 2000 +0200
+++ b/VarArgCheapBlock.st	Sat Apr 01 15:28:48 2000 +0200
@@ -12,7 +12,9 @@
 
 
 
-CheapBlock subclass:#VarArgCheapBlock
+"{ Package: 'stx:libbasic' }"
+
+CheapBlock variableSubclass:#VarArgCheapBlock
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
@@ -50,6 +52,24 @@
 "
 ! !
 
+!VarArgCheapBlock class methodsFor:'initialization'!
+
+initialize
+    "must clear the is-block flag bit in the class
+     (otherwise, the VM might try to inline value-messages)"
+
+    flags := flags bitClear:(Behavior flagBlock).
+    flags := flags bitOr:(Behavior flagBlockLike).
+
+    "
+     self flags.       
+     self initialize.
+     self flags.      
+    "
+
+
+! !
+
 !VarArgCheapBlock methodsFor:'evaluation'!
 
 value
@@ -179,5 +199,6 @@
 !VarArgCheapBlock class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/VarArgCheapBlock.st,v 1.1 1997-01-23 14:23:52 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/VarArgCheapBlock.st,v 1.2 2000-04-01 13:28:34 cg Exp $'
 ! !
+VarArgCheapBlock initialize!