X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fvalue-const.h;h=a1bf532ed31796e8000f630b6be93f59aed09bb3;hb=c5b9b4417bedfbec9b5dd23b8395ccdd4eeffc44;hp=1b335c45050b48d4cfe7f49072b0b0e7cc69cb26;hpb=e2f7325d1e58710ee928373592adcee466f93d06;p=babeltrace.git diff --git a/include/babeltrace/value-const.h b/include/babeltrace/value-const.h index 1b335c45..a1bf532e 100644 --- a/include/babeltrace/value-const.h +++ b/include/babeltrace/value-const.h @@ -164,6 +164,23 @@ extern enum bt_value_status bt_value_map_extend( const struct bt_value *extension_map_obj, struct bt_value **extended_map_obj); +extern void bt_value_get_ref(const struct bt_value *value); + +extern void bt_value_put_ref(const struct bt_value *value); + +#define BT_VALUE_PUT_REF_AND_RESET(_var) \ + do { \ + bt_value_put_ref(_var); \ + (_var) = NULL; \ + } while (0) + +#define BT_VALUE_MOVE_REF(_var_dst, _var_src) \ + do { \ + bt_value_put_ref(_var_dst); \ + (_var_dst) = (_var_src); \ + (_var_src) = NULL; \ + } while (0) + #ifdef __cplusplus } #endif