diff options
author | Nicolas Williams <nico@cryptonector.com> | 2015-05-25 21:12:29 -0500 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2015-05-25 21:20:37 -0500 |
commit | dff96aebcf84259b11dabdbc4fff938d0b69278a (patch) | |
tree | 84b4a5ec9a95ea20bc1e79a83a1abafb3f152a3f | |
parent | 8af52aaf52f88a34ea39077e88e32ebadac061bb (diff) |
Add jv_mem_strdup*() and callocs too
-rw-r--r-- | jv_alloc.c | 25 | ||||
-rw-r--r-- | jv_alloc.h | 4 |
2 files changed, 29 insertions, 0 deletions
@@ -1,5 +1,6 @@ #include <stdlib.h> #include <stdio.h> +#include <string.h> #include "jv_alloc.h" struct nomem_handler { @@ -129,6 +130,30 @@ void* jv_mem_alloc_unguarded(size_t sz) { return malloc(sz); } +void* jv_mem_calloc(size_t nemb, size_t sz) { + void* p = calloc(nemb, sz); + if (!p) { + memory_exhausted(); + } + return p; +} + +void* jv_mem_calloc_unguarded(size_t nemb, size_t sz) { + return calloc(nemb, sz); +} + +char* jv_mem_strdup(const char *s) { + char *p = strdup(s); + if (!p) { + memory_exhausted(); + } + return p; +} + +char* jv_mem_strdup_unguarded(const char *s) { + return strdup(s); +} + void jv_mem_free(void* p) { free(p); } @@ -17,6 +17,10 @@ static void jv_mem_invalidate(void* mem, size_t n) { void* jv_mem_alloc(size_t); void* jv_mem_alloc_unguarded(size_t); +void* jv_mem_calloc(size_t, size_t); +void* jv_mem_calloc_unguarded(size_t, size_t); +char* jv_mem_strdup(const char *); +char* jv_mem_strdup_unguarded(const char *); void jv_mem_free(void*); __attribute__((warn_unused_result)) void* jv_mem_realloc(void*, size_t); |