Array.st
changeset 2052 9fdab6cbecfa
parent 1903 30c98b3377c5
child 2145 d243ffafeae3
--- a/Array.st	Sat Jan 04 14:17:34 1997 +0100
+++ b/Array.st	Sat Jan 04 14:19:32 1997 +0100
@@ -610,6 +610,7 @@
     REGISTER OBJFUNC codeVal;
     REGISTER int index;
     REGISTER OBJ rHome;
+    OBJ slf;
     int nIndex, nInsts;
     static struct inlineCache val = _ILC1;
     int indexLow, indexHigh;
@@ -618,12 +619,13 @@
 	indexLow = __intVal(start);
 	if (indexLow > 0) {
 	    indexHigh = __intVal(stop);
-	    if (__qClass(self) != @global(Array)) {
-		nInsts = __intVal(__ClassInstPtr(__qClass(self))->c_ninstvars);
+	    slf = self;
+	    nIndex = __BYTES2OBJS__(__qSize(slf) - OHDR_SIZE);
+	    if (__qClass(slf) != @global(Array)) {
+		nInsts = __intVal(__ClassInstPtr(__qClass(slf))->c_ninstvars);
 		indexLow += nInsts;
 		indexHigh += nInsts;
 	    }
-	    nIndex = __BYTES2OBJS__(__qSize(self) - OHDR_SIZE);
 	    if (indexHigh <= nIndex) {
 		indexLow--;
 		indexHigh--;
@@ -1768,5 +1770,5 @@
 !Array class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Array.st,v 1.75 1996-11-06 12:17:47 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Array.st,v 1.76 1997-01-04 13:19:32 cg Exp $'
 ! !