bugfix wrt interior pointers
@@ -533,6 +533,7 @@ static int gc_allocator_get_block_interior( gc_pheader *page, void **block ) {
int offset = (int)((unsigned char*)*block - page->base);
int bid = offset / page->alloc.block_size;
if( page->alloc.sizes ) {
+ if( bid < page->alloc.first_block ) return -1;
while( page->alloc.sizes[bid] == 0 ) {
if( bid == page->alloc.first_block ) return -1;
bid--;
