objheader_t *objcopy;
int size;
- //quick case for new objects
- if (((struct ___Object___ *)oid)->___objstatus___ & NEW)
- return oid;
-
/* Read from the main heap */
//No lock for now
objheader_t *header = (objheader_t *)(((char *)oid) - sizeof(objheader_t));
do { \
if (cnodetmp->key==inputvalue) {x=cnodetmp->val;break;} \
cnodetmp=cnodetmp->next;\
- if (cnodetmp==NULL) {x=transRead(inputvalue); asm volatile("":"=m"(c_table),"=m"(c_mask));break;} \
+ if (cnodetmp==NULL) {if (((struct ___Object___*)inputvalue)->___objstatus___&NEW) {x=inputvalue;break;} else \
+{x=transRead(inputvalue); asm volatile("":"=m"(c_table),"=m"(c_mask));break;}} \
} while(1);\
}}
}
#endif
-#ifdef STM
+#if defined(STM)||defined(THREADS)
__thread char * memorybase=NULL;
__thread char * memorytop=NULL;
#endif
}
#endif
-#ifdef STM
+#if defined(STM)||defined(THREADS)
#define MEMORYBLOCK 65536
void * helper(struct garbagelist *, int);
void * mygcmalloc(struct garbagelist * stackptr, int size) {