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 /gc.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 'gc.c')
-rw-r--r-- | gc.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -941,6 +941,24 @@ ruby_xfree(void *x) } +/* Mimic ruby_xmalloc, but need not rb_objspace. + * should return pointer suitable for ruby_xfree + */ +void * +ruby_mimmalloc(size_t size) +{ + void *mem; +#if CALC_EXACT_MALLOC_SIZE + size += sizeof(size_t); +#endif + mem = malloc(size); +#if CALC_EXACT_MALLOC_SIZE + ((size_t *)mem)[0] = size; + mem = (size_t *)mem + 1; +#endif + return mem; +} + /* * call-seq: * GC.enable -> true or false |