Class.st
changeset 1514 4ac06d3251a8
parent 1509 fc4b99648f9f
child 1546 0e91715409d0
--- a/Class.st	Tue Jul 02 10:21:24 1996 +0200
+++ b/Class.st	Tue Jul 02 20:31:37 1996 +0200
@@ -1775,7 +1775,15 @@
 			self isDoubles ifTrue:[
 			    s := ' variableDoubleSubclass:#'
 			] ifFalse:[
-			    s := ' variableSubclass:#'
+			    self isSignedWords ifTrue:[
+			        s := ' variableSignedWordSubclass:#'
+			    ] ifFalse:[
+			        self isSignedLongs ifTrue:[
+			            s := ' variableSignedLongSubclass:#'
+			        ] ifFalse:[
+			            s := ' variableSubclass:#'
+				]
+			    ]
 			]
 		    ]
 		]
@@ -3768,6 +3776,23 @@
 	    poolDictionaries:s
 	    category:cat
     ].
+    self isSignedWords ifTrue:[
+        ^ self
+            variableSignedWordSubclass:t
+            instanceVariableNames:f
+            classVariableNames:d
+            poolDictionaries:s
+            category:cat
+    ].
+    self isSignedLongs ifTrue:[
+        ^ self
+            variableSignedLongSubclass:t
+            instanceVariableNames:f
+            classVariableNames:d
+            poolDictionaries:s
+            category:cat
+    ].
+
     ^ self
 	variableSubclass:t
 	instanceVariableNames:f
@@ -3932,11 +3957,63 @@
 	category:cat
 	comment:nil
 	changed:true 
+!
+
+variableSignedWordSubclass:t instanceVariableNames:f classVariableNames:d poolDictionaries:s category:cat
+    "create a new class as a subclass of an existing class (the receiver) 
+     in which the subclass has indexable word-sized signed nonpointer variables"
+
+    self isVariable ifTrue:[
+        self isSignedWords ifFalse:[
+            ^ self error:
+                'cannot make a variable signed word subclass of a variable non-word class'
+        ].
+    ].
+
+    ^ self class
+        name:t
+        inEnvironment:(Smalltalk currentNameSpace)
+        subclassOf:self
+        instanceVariableNames:f
+        variable:#signedWord
+        words:false
+        pointers:false
+        classVariableNames:d
+        poolDictionaries:s
+        category:cat
+        comment:nil
+        changed:true 
+!
+
+variableSignedLongSubclass:t instanceVariableNames:f classVariableNames:d poolDictionaries:s category:cat
+    "create a new class as a subclass of an existing class (the receiver) 
+     in which the subclass has indexable signed long-sized nonpointer variables"
+
+    self isVariable ifTrue:[
+        self isSignedLongs ifFalse:[
+            ^ self error:
+                'cannot make a variable signed long subclass of a variable non-long class'
+        ].
+    ].
+
+    ^ self class
+        name:t
+        inEnvironment:(Smalltalk currentNameSpace)
+        subclassOf:self
+        instanceVariableNames:f
+        variable:#signedLong
+        words:false
+        pointers:false
+        classVariableNames:d
+        poolDictionaries:s
+        category:cat
+        comment:nil
+        changed:true 
 ! !
 
 !Class  class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.161 1996-07-01 19:33:50 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.162 1996-07-02 18:31:37 cg Exp $'
 ! !
 Class initialize!