cjson_mem.c 511 B

12345678910111213141516171819202122232425262728
  1. #include "cjson_mem.h"
  2. #include "../lua/lauxlib.h"
  3. #include <stdlib.h>
  4. static lua_State *gL;
  5. static const char errfmt[] = "cjson %salloc: out of mem (%d bytes)";
  6. void cjson_mem_setlua (lua_State *L)
  7. {
  8. gL = L;
  9. }
  10. void *cjson_mem_malloc (uint32_t sz)
  11. {
  12. void *p = (void*)malloc (sz);
  13. if (!p && gL)
  14. luaL_error (gL, errfmt, "m", sz);
  15. return p;
  16. }
  17. void *cjson_mem_realloc (void *o, uint32_t sz)
  18. {
  19. void *p = (void*)realloc (o, sz);
  20. if (!p && gL)
  21. luaL_error (gL, errfmt, "re", sz);
  22. return p;
  23. }