void *zrealloc(void *ptr, size_t size) { #ifndef HAVE_MALLOC_SIZE void *realptr; #endif size_t oldsize; void *newptr; if (ptr == NULL) return zmalloc(size); #ifdef HAVE_MALLOC_SIZE oldsize = redis_malloc_size(ptr); newptr = realloc(ptr,size); if (!newptr) zmalloc_oom(size); decrement_used_memory(oldsize); increment_used_memory(redis_malloc_size(newptr)); return newptr; #else realptr = (char*)ptr-PREFIX_SIZE; oldsize = *((size_t*)realptr); newptr = realloc(realptr,size+PREFIX_SIZE); if (!newptr) zmalloc_oom(size); *((size_t*)newptr) = size; decrement_used_memory(oldsize); increment_used_memory(size); return (char*)newptr+PREFIX_SIZE; #endif }
void *zrealloc(void *ptr, size_t size) { #ifndef HAVE_MALLOC_SIZE void *realptr; #endif size_t oldsize; void *newptr; if (ptr == NULL) return zmalloc(size); #ifdef HAVE_MALLOC_SIZE oldsize = redis_malloc_size(ptr); newptr = realloc(ptr,size); if (!newptr) return NULL; used_memory -= oldsize; used_memory += redis_malloc_size(newptr); return newptr; #else realptr = (char*)ptr-sizeof(size_t); oldsize = *((size_t*)realptr); newptr = realloc(realptr,size+sizeof(size_t)); if (!newptr) return NULL; *((size_t*)newptr) = size; used_memory -= oldsize; used_memory += size; return (char*)newptr+sizeof(size_t); #endif }
void *zmalloc(size_t size) { void *ptr = malloc(size+sizeof(size_t)); if (!ptr) return NULL; #ifdef HAVE_MALLOC_SIZE used_memory += redis_malloc_size(ptr); return ptr; #else *((size_t*)ptr) = size; used_memory += size+sizeof(size_t); return (char*)ptr+sizeof(size_t); #endif }
void *zmalloc(size_t size) { void *ptr = malloc(size+PREFIX_SIZE); if (!ptr) zmalloc_oom(size); #ifdef HAVE_MALLOC_SIZE increment_used_memory(redis_malloc_size(ptr)); return ptr; #else *((size_t*)ptr) = size; increment_used_memory(size+PREFIX_SIZE); return (char*)ptr+PREFIX_SIZE; #endif }
void zfree(void *ptr) { #ifndef HAVE_MALLOC_SIZE void *realptr; size_t oldsize; #endif if (ptr == NULL) return; #ifdef HAVE_MALLOC_SIZE used_memory -= redis_malloc_size(ptr); free(ptr); #else realptr = (char*)ptr-sizeof(size_t); oldsize = *((size_t*)realptr); used_memory -= oldsize+sizeof(size_t); free(realptr); #endif }
void zfree(void *ptr) { #ifndef HAVE_MALLOC_SIZE void *realptr; size_t oldsize; #endif if (ptr == NULL) return; #ifdef HAVE_MALLOC_SIZE decrement_used_memory(redis_malloc_size(ptr)); free(ptr); #else realptr = (char*)ptr-PREFIX_SIZE; oldsize = *((size_t*)realptr); decrement_used_memory(oldsize+PREFIX_SIZE); free(realptr); #endif }