}
static inline
-struct bt_object *bt_object_get_parent(void *ptr)
+struct bt_object *bt_object_borrow_parent(void *ptr)
{
struct bt_object *obj = ptr;
- return ptr ? bt_get(obj->parent) : NULL;
+ return obj ? obj->parent : NULL;
+}
+
+static inline
+struct bt_object *bt_object_get_parent(void *ptr)
+{
+ return bt_get(bt_object_borrow_parent(ptr));
}
static inline
* to the parent will be released once the object's reference count
* falls to zero.
*/
+ BT_PUT(child->parent);
child->parent = bt_get(parent);
}