diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-01-10 03:49:10 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-01-10 03:49:10 +0000 |
commit | 56dc6f5acc944e06420614b6c2a475376a887d95 (patch) | |
tree | b2b77a562fceac69b005e0cfcb902c3adb9f77b6 /vm.c | |
parent | 107b713438a54770d68be98f3c385e77aecd056e (diff) | |
download | ruby-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.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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); |