diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-05-12 07:48:05 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-05-12 07:48:05 +0000 |
commit | 6ed69699cd38b26f1788916ae8e2191d548229ac (patch) | |
tree | e1a01dde337eda293d45eaa5a5eb62e694095145 /gc.c | |
parent | cbca6dc4cef5a1459629414803d2773861a1f2ff (diff) | |
download | ruby-6ed69699cd38b26f1788916ae8e2191d548229ac.tar.gz |
gc.c: objspace_malloc_fixup
* gc.c (objspace_malloc_fixup): include allocated size
managements.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -7818,6 +7818,9 @@ objspace_malloc_prepare(rb_objspace_t *objspace, size_t size) static inline void * objspace_malloc_fixup(rb_objspace_t *objspace, void *mem, size_t size) { + size = objspace_malloc_size(objspace, mem, size); + objspace_malloc_increase(objspace, mem, size, 0, MEMOP_TYPE_MALLOC); + #if CALC_EXACT_MALLOC_SIZE ((size_t *)mem)[0] = size; mem = (size_t *)mem + 1; @@ -7845,8 +7848,6 @@ objspace_xmalloc0(rb_objspace_t *objspace, size_t size) size = objspace_malloc_prepare(objspace, size); TRY_WITH_GC(mem = malloc(size)); - size = objspace_malloc_size(objspace, mem, size); - objspace_malloc_increase(objspace, mem, size, 0, MEMOP_TYPE_MALLOC); return objspace_malloc_fixup(objspace, mem, size); } @@ -7962,8 +7963,6 @@ objspace_xcalloc(rb_objspace_t *objspace, size_t count, size_t elsize) size = objspace_malloc_prepare(objspace, size); TRY_WITH_GC(mem = calloc(1, size)); - size = objspace_malloc_size(objspace, mem, size); - objspace_malloc_increase(objspace, mem, size, 0, MEMOP_TYPE_MALLOC); return objspace_malloc_fixup(objspace, mem, size); } |