diff options
author | Wayne Meissner <wmeissner@gmail.com> | 2009-08-11 19:43:05 +1000 |
---|---|---|
committer | Wayne Meissner <wmeissner@gmail.com> | 2009-08-11 19:43:05 +1000 |
commit | 05eec8d927ee04ce362e4a579b09e8d5f537ce43 (patch) | |
tree | e09c2bfbad672ef566dc915783a9fecd3ced41a2 /ext/ffi_c/MemoryPointer.c | |
parent | bc1e80c2acd0603841618f99212318895539a100 (diff) | |
download | ffi-05eec8d927ee04ce362e4a579b09e8d5f537ce43.tar.gz |
Use xmalloc/xfree for Buffer & MemoryPointer data storage allocations, so allocations will cause GC if there is no space available
Diffstat (limited to 'ext/ffi_c/MemoryPointer.c')
-rw-r--r-- | ext/ffi_c/MemoryPointer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/ffi_c/MemoryPointer.c b/ext/ffi_c/MemoryPointer.c index 9eaeb80..ea63d91 100644 --- a/ext/ffi_c/MemoryPointer.c +++ b/ext/ffi_c/MemoryPointer.c @@ -95,7 +95,7 @@ memptr_malloc(VALUE self, long size, long count, bool clear) msize = size * count; - p->storage = malloc(msize + 7); + p->storage = xmalloc(msize + 7); if (p->storage == NULL) { rb_raise(rb_eNoMemError, "Failed to allocate memory size=%ld bytes", msize); } @@ -158,7 +158,7 @@ static void memptr_release(MemoryPointer* ptr) { if (ptr->autorelease && ptr->allocated && ptr->storage != NULL) { - free(ptr->storage); + xfree(ptr->storage); ptr->storage = NULL; } xfree(ptr); |