summaryrefslogtreecommitdiff
path: root/ext/ffi_c/MemoryPointer.c
diff options
context:
space:
mode:
authorWayne Meissner <wmeissner@gmail.com>2009-08-11 19:43:05 +1000
committerWayne Meissner <wmeissner@gmail.com>2009-08-11 19:43:05 +1000
commit05eec8d927ee04ce362e4a579b09e8d5f537ce43 (patch)
treee09c2bfbad672ef566dc915783a9fecd3ced41a2 /ext/ffi_c/MemoryPointer.c
parentbc1e80c2acd0603841618f99212318895539a100 (diff)
downloadffi-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.c4
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);