|
@@ -27,15 +27,7 @@
|
|
|
|
|
|
#include <stdbool.h>
|
|
|
|
|
|
-#ifdef BITMAP_RB_ONLY
|
|
|
-#include "bitmap/bitmap.h"
|
|
|
-#include "bitmap/bitmap_rb.h"
|
|
|
-#endif /* BITMAP_RB_ONLY */
|
|
|
-
|
|
|
-#ifdef FL_RB_ONLY
|
|
|
-#include "dmmlib/freelist/freelist.h"
|
|
|
-#include "dmmlib/freelist/freelist_rb.h"
|
|
|
-#endif /* FL_RB_ONLY */
|
|
|
+#include "default_rb.h"
|
|
|
|
|
|
#include "release_memory.h"
|
|
|
#include <sys/mman.h>
|
|
@@ -74,20 +66,8 @@ void * realloc(void *ptr, size_t size) {
|
|
|
|
|
|
if(found == true) {
|
|
|
|
|
|
-#ifdef BITMAP_RB_ONLY
|
|
|
- bitmap_rb_t
|
|
|
-#endif /* BITMAP_RB_ONLY */
|
|
|
-#ifdef FL_RB_ONLY
|
|
|
- freelist_rb_t
|
|
|
-#endif /* FL_RB_ONLY */
|
|
|
- *encapsulated_rb =
|
|
|
-#ifdef BITMAP_RB_ONLY
|
|
|
- (bitmap_rb_t *)
|
|
|
-#endif /* BITMAP_RB_ONLY */
|
|
|
-#ifdef FL_RB_ONLY
|
|
|
- (freelist_rb_t *)
|
|
|
-#endif /* FL_RB_ONLY */
|
|
|
- ((char *)current_raw_block + sizeof(raw_block_header_t));
|
|
|
+ DEFAULT_RB_T *encapsulated_rb = (DEFAULT_RB_T *)
|
|
|
+ ((uintptr_t) current_raw_block + sizeof(raw_block_header_t));
|
|
|
|
|
|
return_ptr = dmmlib_realloc(encapsulated_rb, ptr, size);
|
|
|
goto done;
|
|
@@ -99,8 +79,8 @@ void * realloc(void *ptr, size_t size) {
|
|
|
// greater, a new big block is initialized, data is copied there and the
|
|
|
// old big block gets de-allocated.
|
|
|
|
|
|
- current_raw_block = (raw_block_header_t *)((char *)ptr -
|
|
|
- sizeof(raw_block_header_t));
|
|
|
+ current_raw_block = (raw_block_header_t *)
|
|
|
+ ((uintptr_t) ptr - sizeof(raw_block_header_t));
|
|
|
|
|
|
size_t full_size = sizeof(raw_block_header_t) + size;
|
|
|
|
|
@@ -110,7 +90,7 @@ void * realloc(void *ptr, size_t size) {
|
|
|
current_raw_block->size = full_size;
|
|
|
|
|
|
// FIXME This is mmap-specific
|
|
|
- munmap((void *)((char *)current_raw_block +
|
|
|
+ munmap((void *)((uintptr_t) current_raw_block +
|
|
|
current_raw_block->size), remaining_size);
|
|
|
|
|
|
#ifdef WITH_ALLOCATOR_STATS
|
|
@@ -144,7 +124,7 @@ void * realloc(void *ptr, size_t size) {
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- memcpy((void *)((char *)new_block +
|
|
|
+ memcpy((void *)((uintptr_t) new_block +
|
|
|
sizeof(raw_block_header_t)), ptr,
|
|
|
current_raw_block->size - sizeof(raw_block_header_t));
|
|
|
|