-/**
- * Puts the value object \p _object (calls bt_value_put() on it), and
- * resets the variable to \c NULL.
- *
- * This is something that is often done when putting a value object;
- * resetting the variable to \c NULL makes sure it cannot be put a
- * second time later.
- *
- * @param _object Value object to put
- *
- * @see BT_VALUE_MOVE() (moves a value object from one variable to the
- * other without putting it)
- */
-#define BT_VALUE_PUT(_object) \
- do { \
- bt_value_put(_object); \
- (_object) = NULL; \
- } while (0)
-
-/**
- * Moves the value object referenced by the variable \p _src_object to
- * the \p _dst_object variable, then resets \p _src_object to \c NULL.
- *
- * The value object's reference count is <b>not changed</b>. Resetting
- * \p _src_object to \c NULL ensures the value object will not be put
- * twice later; its ownership is indeed \em moved from the source
- * variable to the destination variable.
- *
- * @param _src_object Source value object variable
- * @param _dst_object Destination value object variable
- */
-#define BT_VALUE_MOVE(_dst_object, _src_object) \
- do { \
- (_dst_object) = (_src_object); \
- (_src_object) = NULL; \
- } while (0)
-
-/**
- * Increments the reference count of \p object.
- *
- * @param object Value object of which to increment the reference count
- *
- * @see bt_value_put()
- */
-extern void bt_value_get(struct bt_value *object);
-
-/**
- * Decrements the reference count of \p object, destroying it when this
- * count reaches 0.
- *
- * @param object Value object of which to decrement the reference count
- *
- * @see bt_value_get()
- */
-extern void bt_value_put(struct bt_value *object);
-