ruby-changes:13225
From: nobu <ko1@a...>
Date: Thu, 17 Sep 2009 18:37:35 +0900 (JST)
Subject: [ruby-changes:13225] Ruby:r24982 (trunk): * gc.c (vm_xrealloc): free as like standard free if size is zero.
nobu 2009-09-17 18:34:20 +0900 (Thu, 17 Sep 2009) New Revision: 24982 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24982 Log: * gc.c (vm_xrealloc): free as like standard free if size is zero. Modified files: trunk/ChangeLog trunk/gc.c Index: ChangeLog =================================================================== --- ChangeLog (revision 24981) +++ ChangeLog (revision 24982) @@ -1,3 +1,7 @@ +Thu Sep 17 18:34:19 2009 Nobuyoshi Nakada <nobu@r...> + + * gc.c (vm_xrealloc): free as like standard free if size is zero. + Thu Sep 17 15:41:02 2009 Koichi Sasada <ko1@a...> * eval_intern.h: use rb_node_newnode() directly. Index: gc.c =================================================================== --- gc.c (revision 24981) +++ gc.c (revision 24982) @@ -604,6 +604,8 @@ } } +static void vm_xfree(rb_objspace_t *objspace, void *ptr); + static void * vm_xmalloc(rb_objspace_t *objspace, size_t size) { @@ -652,7 +654,10 @@ negative_size_allocation_error("negative re-allocation size"); } if (!ptr) return ruby_xmalloc(size); - if (size == 0) size = 1; + if (size == 0) { + vm_xfree(objspace, ptr); + return 0; + } if (ruby_gc_stress && !ruby_disable_gc_stress) garbage_collect_with_gvl(objspace); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/