From 6ed69699cd38b26f1788916ae8e2191d548229ac Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 12 May 2017 07:48:05 +0000 Subject: 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 --- gc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gc.c b/gc.c index 16a6d41fbe..54865d0924 100644 --- a/gc.c +++ b/gc.c @@ -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); } -- cgit v1.2.3