]> mj.ucw.cz Git - libucw.git/commitdiff
Growing arrays: GARY_RESIZE and GARY_INIT_OR_RESIZE
authorMartin Mares <mj@ucw.cz>
Fri, 30 Jul 2010 17:05:13 +0000 (19:05 +0200)
committerMartin Mares <mj@ucw.cz>
Wed, 18 Aug 2010 16:12:27 +0000 (18:12 +0200)
GARY_SET_SIZE renamed to GARY_RESIZE, added GARY_INIT_OR_RESIZE.

ucw/gary.h

index 98fb26ffac1e97f323b93829358746b559299f47..89760ffc65c8b1d09cffa73aeb313bcbd2a645ec 100644 (file)
@@ -20,7 +20,8 @@ struct gary_hdr {
 #define GARY_INIT(ptr, n) (ptr) = gary_init(sizeof(*(ptr)), (n))
 #define GARY_FREE(ptr) do { if (ptr) xfree(GARY_HDR(ptr)); } while (0)
 #define GARY_SIZE(ptr) (GARY_HDR(ptr)->num_elts)
-#define GARY_SET_SIZE(ptr, n) (ptr) = gary_set_size((ptr), (n))
+#define GARY_RESIZE(ptr, n) (ptr) = gary_set_size((ptr), (n))
+#define GARY_INIT_OR_RESIZE(ptr, n) (ptr) = (ptr) ? gary_set_size((ptr), (n)) : gary_init(sizeof(*(ptr)), (n))
 
 #define GARY_PUSH(ptr, n) ({                                           \
   struct gary_hdr *_h = GARY_HDR(ptr);                                 \