[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]