chiark / gitweb /
routesearch: New macros NEW MCALLOC MCALLOC_INITEACH
[ypp-sc-tools.main.git] / yarrg / rscommon.h
index 79f38a4d05eca36e718365758a55e7d234c78c7d..5cbf5b77b0cf84cdce30526713169ecf2cca94a7 100644 (file)
@@ -123,6 +123,20 @@ extern char **archnames;
 extern int *islandid2arch;
 
 
+#define NEW(ptr) ((ptr)= mmalloc(sizeof(*ptr)))
+
+#define MCALLOC(array, count) ((array)= mcalloc(sizeof(*(array)) * (count)))
+
+#define MCALLOC_INITEACH(array, count, init_this) ({                   \
+    MCALLOC((array), (count));                                         \
+    int initi;                                                         \
+    typeof(&(array)[0]) this;                                          \
+    for (initi=0, this=(array); initi<(count); initi++, this++) {      \
+      init_this;                                                       \
+    }                                                                  \
+  })
+
+
 #define ONDEMAND(pointer_lvalue, calloc_size_count)                         \
   ((pointer_lvalue) ? :                                                             \
    ((pointer_lvalue) = mcalloc(sizeof(*(pointer_lvalue)) * calloc_size_count)))