]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/btree.h
kes Fix memory leak with storage ids in cats/sql_get.c
[bacula/bacula] / bacula / src / lib / btree.h
index 23e79a9be9e84e21722ce3b2f228509e354055b1..344eb69cfc9be8f69f187cfe9a3fb1a50c7d8238 100644 (file)
  *
  * Loop var through each member of list
  */
-#define foreach_btree(var, tree) \
-    for(*((bnode **)&(var))=(tree)->first(); (*((bnode **)&(var))=(tree)->next((bnode *)var)); )
 
-#ifdef the_old_way
+#ifdef HAVE_TYPEOF
+#define foreach_btree(var, tree) \
+        for((var)=(typeof(var))(tree)->first(); (var); (var)=(typeof(var))(tree)->next((bnode *)var) )
+#else
 #define foreach_btree(var, tree) \
-        for((var)=(tree)->first(); (((bnode *)(var))=(tree)->next((bnode *)var)); )
+    for(*((bnode **)&(var))=(tree)->first(); (var); (*((bnode **)&(var))=(tree)->next((bnode *)var)) )
 #endif
 
 struct bnode;