mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
add mrb_malloc_simple() that returns NULL on error
This commit is contained in:
+4
-3
@@ -239,9 +239,10 @@ mrb_sym mrb_intern(mrb_state *mrb,const char *cstr)
|
||||
return mrb_intern_cstr(mrb, cstr);
|
||||
}
|
||||
|
||||
void *mrb_malloc(mrb_state*, size_t);
|
||||
void *mrb_calloc(mrb_state*, size_t, size_t);
|
||||
void *mrb_realloc(mrb_state*, void*, size_t);
|
||||
void *mrb_malloc(mrb_state*, size_t); /* raise RuntimeError if no mem */
|
||||
void *mrb_calloc(mrb_state*, size_t, size_t); /* ditto */
|
||||
void *mrb_realloc(mrb_state*, void*, size_t); /* ditto */
|
||||
void *mrb_malloc_simple(mrb_state*, size_t); /* return NULL if no memory available */
|
||||
struct RBasic *mrb_obj_alloc(mrb_state*, enum mrb_vtype, struct RClass*);
|
||||
void mrb_free(mrb_state*, void*);
|
||||
|
||||
|
||||
@@ -182,6 +182,19 @@ mrb_malloc(mrb_state *mrb, size_t len)
|
||||
return mrb_realloc(mrb, 0, len);
|
||||
}
|
||||
|
||||
void*
|
||||
mrb_malloc_simple(mrb_state *mrb, size_t len)
|
||||
{
|
||||
void *p2;
|
||||
|
||||
p2 = (mrb->allocf)(mrb, 0, len, mrb->ud);
|
||||
if (!p2 && len > 0 && mrb->heaps) {
|
||||
mrb_garbage_collect(mrb);
|
||||
p2 = (mrb->allocf)(mrb, 0, len, mrb->ud);
|
||||
}
|
||||
return p2;
|
||||
}
|
||||
|
||||
void*
|
||||
mrb_calloc(mrb_state *mrb, size_t nelem, size_t len)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user