include/babeltrace/graph: fix some include guards
[babeltrace.git] / include / babeltrace / object-internal.h
index 545a20aadd21a7f9f9bd3b78971f9e64b0c5182b..9d906da1ba093d7faaea5b33d7e9fd7f1d019fda 100644 (file)
@@ -29,6 +29,7 @@
 
 #include <babeltrace/ref-internal.h>
 #include <babeltrace/ref.h>
+#include <babeltrace/assert-internal.h>
 
 /**
  * All objects publicly exposed by Babeltrace APIs must contain this structure
@@ -59,7 +60,12 @@ void bt_object_release(void *ptr)
 {
        struct bt_object *obj = ptr;
 
-       if (obj && obj->release && !bt_object_get_ref_count(obj)) {
+#ifdef BT_LOGV
+       BT_LOGV("Releasing object: addr=%p, ref-count=%lu", ptr,
+               obj->ref_count.count);
+#endif
+
+       if (obj && obj->release && bt_object_get_ref_count(obj) == 0) {
                obj->release(obj);
        }
 }
@@ -68,7 +74,14 @@ static inline
 void generic_release(struct bt_object *obj)
 {
        if (obj->parent) {
-               void *parent = obj->parent;
+               struct bt_object *parent = obj->parent;
+
+#ifdef BT_LOGV
+               BT_LOGV("Releasing parented object: addr=%p, ref-count=%lu, "
+                       "parent-addr=%p, parent-ref-count=%lu",
+                       obj, obj->ref_count.count,
+                       parent, parent->ref_count.count);
+#endif
 
                if (obj->parent_is_owner_listener) {
                        /*
@@ -110,6 +123,11 @@ void bt_object_set_parent(void *child_ptr, void *parent)
                return;
        }
 
+#ifdef BT_LOGV
+       BT_LOGV("Setting object's parent: addr=%p, parent-addr=%p",
+               child_ptr, parent);
+#endif
+
        /*
         * It is assumed that a "child" being "parented" is publicly reachable.
         * Therefore, a reference to its parent must be taken. The reference
@@ -134,7 +152,7 @@ static inline
 void bt_object_set_parent_is_owner_listener(void *obj,
                bt_object_release_func cb)
 {
-       assert(obj);
+       BT_ASSERT(obj);
        ((struct bt_object *) obj)->parent_is_owner_listener = cb;
 }
 
This page took 0.02615 seconds and 4 git commands to generate.