aboutsummaryrefslogtreecommitdiffstats
path: root/vm.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-01-10 03:49:10 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-01-10 03:49:10 +0000
commit56dc6f5acc944e06420614b6c2a475376a887d95 (patch)
treeb2b77a562fceac69b005e0cfcb902c3adb9f77b6 /vm.c
parent107b713438a54770d68be98f3c385e77aecd056e (diff)
downloadruby-56dc6f5acc944e06420614b6c2a475376a887d95.tar.gz
* gc.c (ruby_mimmalloc): defined for objects need not rb_objspace,
but should return pointer suitable for ruby_xfree; main vm and main thread. patched by Sokolov Yura. https://github.com/ruby/ruby/pull/79 * internal.h: ditto. * vm.c (Init_BareVM): use ruby_mimmalloc. * ext/dl/cfunc.c: #include <ruby/util.h>. * ext/syslog/syslog.c: use xfree because it is allocated by ruby_strdup. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/vm.c b/vm.c
index f029d4584c..90f7e3e519 100644
--- a/vm.c
+++ b/vm.c
@@ -1620,7 +1620,7 @@ ruby_vm_destruct(rb_vm_t *vm)
#endif
ruby_vm_run_at_exit_hooks(vm);
rb_vm_gvl_destroy(vm);
- free(vm);
+ ruby_xfree(vm);
ruby_current_vm = 0;
}
RUBY_FREE_LEAVE("vm");
@@ -1795,7 +1795,7 @@ thread_free(void *ptr)
free(th->altstack);
}
#endif
- free(ptr);
+ ruby_xfree(ptr);
}
if (ruby_current_thread == th)
ruby_current_thread = NULL;
@@ -2198,8 +2198,8 @@ void
Init_BareVM(void)
{
/* VM bootstrap: phase 1 */
- rb_vm_t * vm = malloc(sizeof(*vm));
- rb_thread_t * th = malloc(sizeof(*th));
+ rb_vm_t * vm = ruby_mimmalloc(sizeof(*vm));
+ rb_thread_t * th = ruby_mimmalloc(sizeof(*th));
if (!vm || !th) {
fprintf(stderr, "[FATAL] failed to allocate memory\n");
exit(EXIT_FAILURE);