]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Convert Flow macros to inline functions
authorVictor Julien <victor@inliniac.net>
Mon, 9 Dec 2013 15:20:30 +0000 (16:20 +0100)
committerVictor Julien <victor@inliniac.net>
Mon, 9 Dec 2013 15:20:30 +0000 (16:20 +0100)
Convert FlowReference and FlowDeReference to inline functions for
better readability and to aid static code analyzers.

src/flow.h

index 399caad20ff86205adf05a06966b0e9a9831c187..843e10790ffc851d30ed0e7cd61fbdfbd645b40c 100644 (file)
@@ -28,6 +28,7 @@
 #include "util-var.h"
 #include "util-atomic.h"
 #include "detect-tag.h"
+#include "util-optimize.h"
 
 #define FLOW_QUIET      TRUE
 #define FLOW_VERBOSE    FALSE
@@ -507,19 +508,19 @@ static inline void FlowDecrUsecnt(Flow *f)
     (void) SC_ATOMIC_SUB(f->use_cnt, 1);
 }
 
-#define FlowReference(dst_f_ptr, f) do {            \
-        if ((f) != NULL) {                          \
-            FlowIncrUsecnt((f));                    \
-            *(dst_f_ptr) = f;                       \
-        }                                           \
-    } while (0)
+static inline void FlowReference(Flow **d, Flow *f) {
+    if (likely(f != NULL)) {
+        FlowIncrUsecnt(f);
+        *d = f;
+    }
+}
 
-#define FlowDeReference(src_f_ptr) do {               \
-        if (*(src_f_ptr) != NULL) {                   \
-            FlowDecrUsecnt(*(src_f_ptr));             \
-            *(src_f_ptr) = NULL;                      \
-        }                                             \
-    } while (0)
+static inline void FlowDeReference(Flow **d) {
+    if (likely(*d != NULL)) {
+        FlowDecrUsecnt(*d);
+        *d = NULL;
+    }
+}
 
 int FlowClearMemory(Flow *,uint8_t );