Object.st
changeset 2209 6ddff479f0ea
parent 2203 5899dbf1b69c
child 2227 eb1e28c62f14
--- a/Object.st	Mon Jan 20 12:52:22 1997 +0100
+++ b/Object.st	Mon Jan 20 17:11:45 1997 +0100
@@ -4265,7 +4265,7 @@
 
     REGISTER int nbytes;
     REGISTER OBJ myClass;
-    REGISTER int flags;
+    REGISTER INT flags;
 
     /*
      * notice the missing test for self being a nonNilObject -
@@ -4277,22 +4277,24 @@
               - OHDR_SIZE 
               - __OBJS2BYTES__(__intVal(__ClassInstPtr(myClass)->c_ninstvars));
 
-    flags = __intVal(__ClassInstPtr(myClass)->c_flags) & ARRAYMASK;
+    flags = (INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(ARRAYMASK);
     /*
      * replaced switch by open-if; this is slightly faster since
      * it avoids the range check and also checks the most common case first
      */
-    if ((flags == POINTERARRAY)
-     || (flags == WKPOINTERARRAY)) {
+    if (flags == __MASKSMALLINT(POINTERARRAY)) {
         RETURN ( __MKSMALLINT(__BYTES2OBJS__(nbytes)) );
     }
-    if (flags == BYTEARRAY) {
+    if (flags == __MASKSMALLINT(BYTEARRAY)) {
             RETURN ( __MKSMALLINT(nbytes / sizeof(char)) );
     }
-    if (flags == FLOATARRAY) {
+    if (flags == __MASKSMALLINT(WKPOINTERARRAY)) {
+	RETURN ( __MKSMALLINT(__BYTES2OBJS__(nbytes)) );
+    }
+    if (flags == __MASKSMALLINT(FLOATARRAY)) {
         RETURN ( __MKSMALLINT(nbytes / sizeof(float)) );
     }
-    if (flags == DOUBLEARRAY) {
+    if (flags == __MASKSMALLINT(DOUBLEARRAY)) {
 #ifdef NEED_DOUBLE_ALIGN
             /*
              * care for filler
@@ -4301,10 +4303,10 @@
 #endif
             RETURN ( __MKSMALLINT(nbytes / sizeof(double)) );
     }
-    if ((flags == WORDARRAY) || (flags == SWORDARRAY)) {
+    if ((flags == __MASKSMALLINT(WORDARRAY)) || (flags == __MASKSMALLINT(SWORDARRAY))) {
         RETURN ( __MKSMALLINT(nbytes / sizeof(short)) );
     }
-    if ((flags == LONGARRAY) || (flags == SLONGARRAY)) {
+    if ((flags == __MASKSMALLINT(LONGARRAY)) || (flags == __MASKSMALLINT(SLONGARRAY))) {
         RETURN ( __MKSMALLINT(nbytes / sizeof(long)) );
     }
 %}.
@@ -5537,6 +5539,6 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.164 1997-01-18 16:41:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.165 1997-01-20 16:11:45 cg Exp $'
 ! !
 Object initialize!