test_ctf_writer.c: put statements outside BT_ASSERT()
[babeltrace.git] / include / babeltrace / ref-internal.h
index cf1547da9615345df8977f5fd95c8d7fb4fe3a57..f0d973b692ec4843f90509dc29d48a40b6147ea6 100644 (file)
@@ -28,7 +28,7 @@
  */
 
 #include <babeltrace/babeltrace-internal.h>
-#include <assert.h>
+#include <babeltrace/assert-internal.h>
 
 struct bt_object;
 typedef void (*bt_object_release_func)(struct bt_object *);
@@ -41,7 +41,7 @@ struct bt_ref {
 static inline
 void bt_ref_init(struct bt_ref *ref, bt_object_release_func release)
 {
-       assert(ref);
+       BT_ASSERT(ref);
        ref->count = 1;
        ref->release = release;
 }
@@ -49,23 +49,23 @@ void bt_ref_init(struct bt_ref *ref, bt_object_release_func release)
 static inline
 void bt_ref_get(struct bt_ref *ref)
 {
-       assert(ref);
+       BT_ASSERT(ref);
 
-       if (!ref->release) {
+       if (unlikely(!ref->release)) {
                return;
        }
 
        ref->count++;
        /* Overflow check. */
-       assert(ref->count);
+       BT_ASSERT(ref->count);
 }
 
 static inline
 void bt_ref_put(struct bt_ref *ref)
 {
-       assert(ref);
+       BT_ASSERT(ref);
        /* Only assert if the object has opted-in for reference counting. */
-       if ((--ref->count) == 0 && ref->release) {
+       if (unlikely((--ref->count) == 0 && ref->release)) {
                ref->release((struct bt_object *) ref);
        }
 }
This page took 0.023977 seconds and 4 git commands to generate.