]> granicus.if.org Git - neomutt/commitdiff
Use mutt memory primitives in rxi-vec
authorPietro Cerutti <gahr@gahr.ch>
Wed, 7 Aug 2019 13:58:03 +0000 (13:58 +0000)
committerRichard Russon <rich@flatcap.org>
Mon, 21 Oct 2019 18:58:45 +0000 (19:58 +0100)
addrbook.c
rxi-vec/vec.c
rxi-vec/vec.h

index aca4152ececeecd8145d8243f23d393f0a4ef969..1d79a07f71949e7268880635df49911c83863721 100644 (file)
@@ -231,8 +231,7 @@ new_aliases:
     menu->max++;
   }
 
-  if (vec_reserve(&alias_table, menu->max) == -1)
-    return;
+  vec_reserve(&alias_table, menu->max);
 
   menu->data = &alias_table;
 
index 399104e90c2ecd771068fbbfff86d63b7bb2dc9f..ae251d03dc53ca29d7b37d5f1171ce5eb821ac1b 100644 (file)
@@ -6,70 +6,55 @@
  */
 
 #include "vec.h"
+#include "mutt/memory.h"
 
 
-int vec_expand_(char **data, int *length, int *capacity, int memsz) {
+void vec_expand_(char **data, int *length, int *capacity, int memsz) {
   if (*length + 1 > *capacity) {
-    void *ptr;
     int n = (*capacity == 0) ? 1 : *capacity << 1;
-    ptr = realloc(*data, n * memsz);
-    if (ptr == NULL) return -1;
-    *data = ptr;
+    mutt_mem_realloc(data, n * memsz);
     *capacity = n;
   }
-  return 0;
 }
 
 
-int vec_reserve_(char **data, int *length, int *capacity, int memsz, int n) {
+void vec_reserve_(char **data, int *length, int *capacity, int memsz, int n) {
   (void) length;
   if (n > *capacity) {
-    void *ptr = realloc(*data, n * memsz);
-    if (ptr == NULL) return -1;
-    *data = ptr;
+    mutt_mem_realloc(data, n * memsz);
     *capacity = n;
   }
-  return 0;
 }
 
 
-int vec_reserve_po2_(
-  char **data, int *length, int *capacity, int memsz, int n
-) {
+void vec_reserve_po2_(char **data, int *length, int *capacity, int memsz, int n) {
   int n2 = 1;
-  if (n == 0) return 0;
+  if (n == 0) return;
   while (n2 < n) n2 <<= 1;
-  return vec_reserve_(data, length, capacity, memsz, n2);
+  vec_reserve_(data, length, capacity, memsz, n2);
 }
 
 
-int vec_compact_(char **data, int *length, int *capacity, int memsz) {
+void vec_compact_(char **data, int *length, int *capacity, int memsz) {
   if (*length == 0) {
-    free(*data);
+    mutt_mem_free(*data);
     *data = NULL;
     *capacity = 0;
-    return 0;
   } else {
-    void *ptr;
     int n = *length;
-    ptr = realloc(*data, n * memsz);
-    if (ptr == NULL) return -1;
+    mutt_mem_realloc(data, n * memsz);
     *capacity = n;
-    *data = ptr;
   }
-  return 0;
 }
 
 
-int vec_insert_(char **data, int *length, int *capacity, int memsz,
+void vec_insert_(char **data, int *length, int *capacity, int memsz,
                  int idx
 ) {
-  int err = vec_expand_(data, length, capacity, memsz);
-  if (err) return err;
+  vec_expand_(data, length, capacity, memsz);
   memmove(*data + (idx + 1) * memsz,
           *data + idx * memsz,
           (*length - idx) * memsz);
-  return 0;
 }
 
 
index 2430611e35f6aa808cdbf478b3f99703fa57ccef..46723a895bd54918af661c9578feba38326ca45f 100644 (file)
 
 
 #define vec_deinit(v)\
-  ( free((v)->data),\
-    vec_init(v) ) 
+  do { \
+    free((v)->data); \
+    vec_init(v); \
+  } while (0)
 
 
 #define vec_push(v, val)\
-  ( vec_expand_(vec_unpack_(v)) ? -1 :\
-    ((v)->data[(v)->length++] = (val), 0), 0 )
+  do { \
+    vec_expand_(vec_unpack_(v)); \
+    (v)->data[(v)->length++] = (val); \
+  } while (0)
 
 
 #define vec_pop(v)\
 
 
 #define vec_splice(v, start, count)\
-  ( vec_splice_(vec_unpack_(v), start, count),\
-    (v)->length -= (count) )
+  do { \
+    int s = (start); \
+    int c = (count); \
+    vec_splice_(vec_unpack_(v), s, c); \
+    (v)->length -= c; \
+  } while (0)
 
 
 #define vec_swapsplice(v, start, count)\
-  ( vec_swapsplice_(vec_unpack_(v), start, count),\
-    (v)->length -= (count) )
+  do { \
+    int s = (start); \
+    int c = (count); \
+    vec_swapsplice_(vec_unpack_(v), s, c); \
+    (v)->length -= count; \
+  } while (0)
 
 
 #define vec_insert(v, idx, val)\
-  ( vec_insert_(vec_unpack_(v), idx) ? -1 :\
-    ((v)->data[idx] = (val), 0), (v)->length++, 0 )
+  do { \
+    vec_insert_(vec_unpack_(v), idx); \
+    (v)->data[idx] = (val); \
+    (v)->length++; \
+  } while (0)
     
 
 #define vec_sort(v, fn)\
 
 
 
-int vec_expand_(char **data, int *length, int *capacity, int memsz);
-int vec_reserve_(char **data, int *length, int *capacity, int memsz, int n);
-int vec_reserve_po2_(char **data, int *length, int *capacity, int memsz,
-                     int n);
-int vec_compact_(char **data, int *length, int *capacity, int memsz);
-int vec_insert_(char **data, int *length, int *capacity, int memsz,
+void vec_expand_(char **data, int *length, int *capacity, int memsz);
+void vec_reserve_(char **data, int *length, int *capacity, int memsz, int n);
+void vec_reserve_po2_(char **data, int *length, int *capacity, int memsz, int n);
+void vec_compact_(char **data, int *length, int *capacity, int memsz);
+void vec_insert_(char **data, int *length, int *capacity, int memsz,
                 int idx);
 void vec_splice_(char **data, int *length, int *capacity, int memsz,
                  int start, int count);