senttopmessage=true;
}
unsigned int minimumbytes=compactblocks(orig, to);
+
if (orig->ptr==orig->bound) {
//need more data to compact
//increment the core
//Scan more carefully next
objlength=getMarkedLength(origptr);
-
if (objlength!=NOTMARKED) {
unsigned int length=ALIGNSIZETOBYTES(objlength);
void *endtoptr=toptr+length;
if (!gcmarktbl[arrayoffset]) {
do {
arrayoffset++;
- if (arrayoffset<origendoffset) {
+ if (arrayoffset>=origendoffset) {
//finished with block...
origptr=origbound;
orig->ptr=origptr;
orig->ptr=origptr;
return dstptr;
}
-
+
/* Move the object */
if(origptr <= endtoptr) {
memmove(dstptr, origptr, length);
} else {
memcpy(dstptr, origptr, length);
}
-
+
/* Update the pointers in the object */
updatePtrsInObj(dstptr);
+
/* Clear the mark */
clearMark(origptr);
gc(stackptr);
}
p = BAMBOO_SHARE_MEM_CALLOC(isize); // calloc(m, isize);
+
if(p == NULL) {
// no more global shared memory
if(hasgc < 5) {