コード例 #1
0
ファイル: zmalloc.c プロジェクト: worldpeople/code
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 = zmalloc_size(ptr);
	newPtr = realloc(ptr, size);
	if(!newPtr) zmalloc_oom(size);
	
	update_zmalloc_stat_free(oldSize);
	update_zmalloc_stat_alloc(zmalloc_size(newPtr), size);
  #else
	realPtr = (char *)ptr -PREFIX_SIZE;
	oldSize = *((size_t *)realPtr);
	newPtr = realloc(realPtr, size+PREFIX_SIZE);
	if(!newPtr) malloc_oom(size);

	*((size_t *)newPtr) = size;
	update_zmalloc_stat_free(oldSize);
	update_zmalloc_stat_alloc(size, size);
	return (char *)newPtr + PREFIX_SIZE
  #endif
}
コード例 #2
0
ファイル: malloc_hook.c プロジェクト: wangdali/skynetw
void *
skynet_realloc(void *ptr, size_t size) {
	if (ptr == NULL) return skynet_malloc(size);

	void* rawptr = clean_prefix(ptr);
	void *newptr = je_realloc(rawptr, size+PREFIX_SIZE);
	if(!newptr) malloc_oom(size);
	return fill_prefix(newptr);
}
コード例 #3
0
ファイル: malloc_hook.c プロジェクト: wangdali/skynetw
void *
skynet_calloc(size_t nmemb,size_t size) {
	void* ptr = je_calloc(nmemb + ((PREFIX_SIZE+size-1)/size), size );
	if(!ptr) malloc_oom(size);
	return fill_prefix(ptr);
}
コード例 #4
0
ファイル: malloc_hook.c プロジェクト: wangdali/skynetw
void *
skynet_malloc(size_t size) {
	void* ptr = je_malloc(size + PREFIX_SIZE);
	if(!ptr) malloc_oom(size);
	return fill_prefix(ptr);
}
コード例 #5
0
ファイル: malloc_hook.c プロジェクト: DPFcoder/skynet
void *
skynet_memalign(size_t alignment, size_t size) {
	void* ptr = je_memalign(alignment, size + PREFIX_SIZE);
	if(!ptr) malloc_oom(size);
	return fill_prefix(ptr);
}