diff --git a/src/mem/slab.h b/src/mem/slab.h index 9234aa5..4953a38 100644 --- a/src/mem/slab.h +++ b/src/mem/slab.h @@ -43,8 +43,7 @@ namespace snmalloc void* head = meta.head; assert(rsize == sizeclass_to_size(meta.sizeclass)); - meta.debug_slab_invariant(this); - assert(sl.get_head() == (SlabLink*)((size_t)this + meta.link)); + assert(sl.get_head() == (SlabLink*)pointer_offset(this, meta.link)); assert(!meta.is_full()); void* p = nullptr; diff --git a/src/test/func/memory/memory.cc b/src/test/func/memory/memory.cc index 3897428..bc8198e 100644 --- a/src/test/func/memory/memory.cc +++ b/src/test/func/memory/memory.cc @@ -173,7 +173,7 @@ void test_external_pointer() for (size_t offset = 0; offset < size; offset += 17) { - void* p2 = (void*)((size_t)p1 + offset); + void* p2 = pointer_offset(p1, offset); void* p3 = Alloc::external_pointer(p2); void* p4 = Alloc::external_pointer(p2); UNUSED(p3); diff --git a/src/test/perf/external_pointer/externalpointer.cc b/src/test/perf/external_pointer/externalpointer.cc index 5dbcfcc..20e7bba 100644 --- a/src/test/perf/external_pointer/externalpointer.cc +++ b/src/test/perf/external_pointer/externalpointer.cc @@ -72,8 +72,8 @@ namespace test size_t* external_ptr = objects[oid]; size_t size = *external_ptr; size_t offset = (size >> 4) * (rand & 15); - size_t interior_ptr = ((size_t)external_ptr) + offset; - void* calced_external = Alloc::external_pointer((void*)interior_ptr); + void* interior_ptr = pointer_offset(external_ptr, offset); + void* calced_external = Alloc::external_pointer(interior_ptr); if (calced_external != external_ptr) abort(); }