ip: reassembly - fixing stepping index in a better way
[vpp.git] / src / vppinfra / pool.h
index dd581ef..ef81609 100644 (file)
@@ -561,16 +561,11 @@ do {                                                                      \
         i = pool_get_next_index (v, i))
 
 /* Iterate pool by index from s to e */
-#define pool_foreach_stepping_index(i, s, e, v, body)                         \
-  for ((i) = (s); (i) < (e); (i) = pool_get_next_index (v, i))                \
-    {                                                                         \
-      if (!pool_is_free_index ((v), (i)))                                     \
-       do                                                                    \
-         {                                                                   \
-           body;                                                             \
-         }                                                                   \
-       while (0);                                                            \
-    }
+#define pool_foreach_stepping_index(i, s, e, v)                               \
+  for ((i) =                                                                  \
+        (pool_is_free_index ((v), (s)) ? pool_get_next_index ((v), (s)) :    \
+                                               (s));                               \
+       (i) < (e); (i) = pool_get_next_index ((v), (i)))
 
 /**
  * @brief Remove all elements from a pool in a safe way