--- 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 $'
! !