Ver Fonte

[da.h] Extracting cap increase into a macro

Vinicius Teshima há 1 ano atrás
pai
commit
244957914d
1 ficheiros alterados com 8 adições e 8 exclusões
  1. 8 8
      src/da.h

+ 8 - 8
src/da.h

@@ -35,6 +35,12 @@
 		free((da).items);			\
 	} while(0)
 
+#define DA_INC_CAP(da)							\
+	(da).items = _realloc((da).items,				\
+			      (da).cap,				\
+			      ((da).cap*2) * sizeof(*(da).items));	\
+	(da).cap *= 2;
+
 #define DA_CLEAR(da)					\
 	do {						\
 		(da).size = 0;				\
@@ -59,9 +65,7 @@
 			break;						\
 		}							\
 		if ( (da).size+1 >= (da).cap ) {			\
-			(da).cap *= 2;					\
-			(da).items = realloc((da).items,		\
-					     (da).cap * sizeof(*(da).items)); \
+			DA_INC_CAP(da)					\
 		}							\
 		memmove((da).items+index+1, (da).items+index,		\
 			(da).cap - index);				\
@@ -75,11 +79,7 @@
 #define DA_APPEND(da, item)						\
 	do {								\
 		if ( (da).size+1 >= (da).cap ) {			\
-			(da).items = _realloc((da).items,		\
-					      (da).cap,		\
-					      ((da).cap*2)		\
-					      * sizeof(*(da).items));	\
-			(da).cap *= 2;					\
+			DA_INC_CAP(da)					\
 		}							\
 		(da).items[(da).size++] = item;			\
 	} while(0)