char *superblock;
Size pageno;
Size obsize;
+ uint16 size_class;
/* Locate the containing superblock. */
region = sb_lookup_region(ptr);
LWLockAcquire(lock, LW_EXCLUSIVE);
}
+ /* Compute the object size. */
+ size_class = span->size_class;
+ obsize = sb_size_classes[size_class];
+
/* Put the object on the superblock's freelist. */
superblock = relptr_access(base, span->start);
- obsize = sb_size_classes[span->size_class];
Assert(((char *) ptr) >= superblock);
Assert(((char *) ptr) < superblock + SB_SUPERBLOCK_SIZE);
Assert((((char *) ptr) - superblock) % obsize == 0);
{
sb_heap *heap = relptr_access(base, span->parent);
Size first_page;
- uint16 size_class;
sb_unlink_span(base, heap, span);
- size_class = span->size_class;
first_page = fpm_pointer_to_page(fpm_base,
relptr_access(base, span->start));
FreePageManagerPut(region->fpm, first_page, span->npages);