lib: object.h: convert precondition assertions to internal assertions
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 16 Apr 2020 13:53:01 +0000 (09:53 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 23 Apr 2020 03:45:20 +0000 (23:45 -0400)
The `object.h` API is completely internal.

We used to have only two public reference counting modification
functions (to get and put references), but since c5b9b4417 ("lib: make
public reference count functions have strict types"), each shared object
type has its own reference counting modification functions. Therefore
it's impossible that bt_object_get_ref() or bt_object_put_ref() be
called with a unique object without at least getting a compiler warning.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: I80286144f3f29af933694d5e824473abd7ec9103
Reviewed-on: https://review.lttng.org/c/babeltrace/+/3430

src/lib/object.h

index c0180dce76cda3dc43ae9aea7b74a30fd814c6a4..2fbe7f02a2d275f0cdcaa9f373ff008e31dbd0b6 100644 (file)
@@ -317,10 +317,7 @@ void bt_object_get_ref(const void *ptr)
                return;
        }
 
-#ifdef BT_ASSERT_PRE_DEV
-       BT_ASSERT_PRE_DEV(obj->is_shared, "Object is not shared: %!+O", obj);
-#endif
-
+       BT_ASSERT_DBG(obj->is_shared);
        bt_object_get_ref_no_null_check(obj);
 }
 
@@ -333,12 +330,8 @@ void bt_object_put_ref(const void *ptr)
                return;
        }
 
-#ifdef BT_ASSERT_PRE_DEV
-       BT_ASSERT_PRE_DEV(obj->is_shared, "Object is not shared: %!+O", obj);
-       BT_ASSERT_PRE_DEV(bt_object_get_ref_count(obj) > 0,
-               "Decrementing a reference count set to 0: %!+O", ptr);
-#endif
-
+       BT_ASSERT_DBG(obj->is_shared);
+       BT_ASSERT_DBG(bt_object_get_ref_count(obj) > 0);
        bt_object_put_ref_no_null_check(obj);
 }
 
This page took 0.024894 seconds and 4 git commands to generate.