diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2023-11-29 21:52:58 +0000 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2023-11-29 21:52:58 +0000 |
commit | 931bffbda3668ddc609fc1da8f9eb576b170aa52 (patch) | |
tree | d8c1843a95da5ea0bb4acc09f7e37843d9995c86 /test/symbolic/klee/nvim/memory.c | |
parent | 142d9041391780ac15b89886a54015fdc5c73995 (diff) | |
parent | 4a8bf24ac690004aedf5540fa440e788459e5e34 (diff) | |
download | rneovim-userreg.tar.gz rneovim-userreg.tar.bz2 rneovim-userreg.zip |
Merge remote-tracking branch 'upstream/master' into userreguserreg
Diffstat (limited to 'test/symbolic/klee/nvim/memory.c')
-rw-r--r-- | test/symbolic/klee/nvim/memory.c | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/test/symbolic/klee/nvim/memory.c b/test/symbolic/klee/nvim/memory.c deleted file mode 100644 index 1614f813d7..0000000000 --- a/test/symbolic/klee/nvim/memory.c +++ /dev/null @@ -1,101 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "nvim/lib/ringbuf.h" - -enum { RB_SIZE = 1024 }; - -typedef struct { - void *ptr; - size_t size; -} AllocRecord; - -RINGBUF_TYPEDEF(AllocRecords, AllocRecord) -RINGBUF_INIT(AllocRecords, arecs, AllocRecord, RINGBUF_DUMMY_FREE) -RINGBUF_STATIC(static, AllocRecords, AllocRecord, arecs, RB_SIZE) - -size_t allocated_memory = 0; -size_t ever_allocated_memory = 0; - -size_t allocated_memory_limit = SIZE_MAX; - -void *xmalloc(const size_t size) -{ - void *ret = malloc(size); - allocated_memory += size; - ever_allocated_memory += size; - assert(allocated_memory <= allocated_memory_limit); - assert(arecs_rb_length(&arecs) < RB_SIZE); - arecs_rb_push(&arecs, (AllocRecord) { - .ptr = ret, - .size = size, - }); - return ret; -} - -void xfree(void *const p) -{ - if (p == NULL) { - return; - } - RINGBUF_FORALL(&arecs, AllocRecord, arec) { - if (arec->ptr == p) { - allocated_memory -= arec->size; - arecs_rb_remove(&arecs, arecs_rb_find_idx(&arecs, arec)); - return; - } - } - abort(); -} - -void *xrealloc(void *const p, size_t new_size) -{ - void *ret = realloc(p, new_size); - RINGBUF_FORALL(&arecs, AllocRecord, arec) { - if (arec->ptr == p) { - allocated_memory -= arec->size; - allocated_memory += new_size; - if (new_size > arec->size) { - ever_allocated_memory += (new_size - arec->size); - } - arec->ptr = ret; - arec->size = new_size; - return ret; - } - } - abort(); - return (void *)(intptr_t)1; -} - -char *xstrdup(const char *str) - FUNC_ATTR_MALLOC FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_RET - FUNC_ATTR_NONNULL_ALL -{ - return xmemdupz(str, strlen(str)); -} - -void *xmallocz(size_t size) - FUNC_ATTR_MALLOC FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT -{ - size_t total_size = size + 1; - assert(total_size > size); - - void *ret = xmalloc(total_size); - ((char *)ret)[size] = 0; - - return ret; -} - -char *xstpcpy(char *restrict dst, const char *restrict src) - FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL -{ - const size_t len = strlen(src); - return (char *)memcpy(dst, src, len + 1) + len; -} - -void *xmemdupz(const void *data, size_t len) - FUNC_ATTR_MALLOC FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT - FUNC_ATTR_NONNULL_ALL -{ - return memcpy(xmallocz(len), data, len); -} |