if(isArray == 1) {
int elementsize = classsize[TYPE(objheader)];
struct ArrayObject *ao = (struct ArrayObject *) (tmp + sizeof(objheader_t));
- unsigned short length = ao->___length___;
+ int length = ao->___length___;
/* Check if array out of bounds */
- if(arryfields[arryfieldindex] < 0 || arryfields[arryfieldindex]>= length) {
- break;
+ if(arryfields[arryfieldindex] < 0 || arryfields[arryfieldindex] >= length) {
+ break; //if yes then treat the object as found
}
objoid = *((unsigned int *)(tmp + sizeof(objheader_t) + sizeof(struct ArrayObject) + (elementsize*arryfields[arryfieldindex])));
} else {
/* Look in Prefetch cache */
checkPreCache(node, numoffset, oid[i],i);
}
+ flag = 0;
}
/* Make machine groups */
if(TYPE(header) > NUMCLASSES) {
isArray = 1;
}
+
if(isArray == 1) {
int elementsize = classsize[TYPE(header)];
+ struct ArrayObject *ao = (struct ArrayObject *) (tmp + sizeof(objheader_t));
+ int length = ao->___length___;
+ /* Check if array out of bounds */
+ if(arryfields[arryfieldindex] < 0 || arryfields[arryfieldindex] >= length) {
+ break; //if yes treat the object as found
+ }
objoid = *((unsigned int *)(tmp + sizeof(objheader_t) + sizeof(struct ArrayObject) + (elementsize*arryfields[arryfieldindex])));
} else {
objoid = *((unsigned int *)(tmp + sizeof(objheader_t) + arryfields[arryfieldindex]));
printf("%s() Calloc error at %s,%d\n", __func__, __FILE__, __LINE__);
return -1;
}
+
recv_data((int)sd, recvbuffer, size);
control = *((char *) recvbuffer);