diff options
author | Felipe Oliveira Carvalho <felipekde@gmail.com> | 2014-04-18 01:01:04 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-04-24 10:31:31 -0300 |
commit | 1befc494144fbf1d5bff6d7eaeeae4bc20d75f54 (patch) | |
tree | f12641aebdff2700df1262f5bc1c00bea07d88b7 /src/memory.c | |
parent | 471da2de810964052d4d2ab5ba0e23446ea7880d (diff) | |
download | rneovim-1befc494144fbf1d5bff6d7eaeeae4bc20d75f54.tar.gz rneovim-1befc494144fbf1d5bff6d7eaeeae4bc20d75f54.tar.bz2 rneovim-1befc494144fbf1d5bff6d7eaeeae4bc20d75f54.zip |
Use xmalloc() and xmemdupz() in file_pat_to_reg_pat()
Unfortunately there's still a case where NULL can be returned from
file_pat_to_reg_pat().
xmemdupz() and xmallocz() aren't static anymore. There are many use cases for
these function.
Diffstat (limited to 'src/memory.c')
-rw-r--r-- | src/memory.c | 53 |
1 files changed, 21 insertions, 32 deletions
diff --git a/src/memory.c b/src/memory.c index f2d24f70a1..2ec1b179ea 100644 --- a/src/memory.c +++ b/src/memory.c @@ -43,17 +43,6 @@ #include "os/os.h" static void try_to_free_memory(); -static void *xmallocz(size_t size); - -/// Allocates (len + 1) bytes of memory, duplicates `len` bytes of -/// `data` to the allocated memory, zero terminates the allocated memory, -/// and returns a pointer to the allocated memory. If the allocation fails, -/// the program dies. -/// -/// @see {xmalloc} -/// @param data Pointer to the data that will be copied -/// @param len number of bytes that will be copied -static void *xmemdupz(const void *data, size_t len); /* * Note: if unsigned is 16 bits we can only allocate up to 64K with alloc(). @@ -155,6 +144,27 @@ void *xrealloc(void *ptr, size_t size) return ret; } +void *xmallocz(size_t size) +{ + size_t total_size = size + 1; + void *ret; + + if (total_size < size) { + OUT_STR("Vim: Data too large to fit into virtual memory space\n"); + preserve_exit(); + } + + ret = xmalloc(total_size); + ((char*)ret)[size] = 0; + + return ret; +} + +void *xmemdupz(const void *data, size_t len) +{ + return memcpy(xmallocz(len), data, len); +} + char * xstrdup(const char *str) { char *ret = strdup(str); @@ -350,24 +360,3 @@ void free_all_mem(void) #endif -static void *xmallocz(size_t size) -{ - size_t total_size = size + 1; - void *ret; - - if (total_size < size) { - OUT_STR("Vim: Data too large to fit into virtual memory space\n"); - preserve_exit(); - } - - ret = xmalloc(total_size); - ((char*)ret)[size] = 0; - - return ret; -} - -static void *xmemdupz(const void *data, size_t len) -{ - return memcpy(xmallocz(len), data, len); -} - |