lib: trace IR, values: reset pointers to `NULL` on destruction
[babeltrace.git] / lib / trace-ir / attributes.c
index 0b321e2eefcd161b888d1ab7dc62820627ee28a8..44068de24c0e6387d457820447215e111d14c731 100644 (file)
@@ -1,8 +1,4 @@
 /*
- * attributes.c
- *
- * Babeltrace trace IR - Attributes
- *
  * Copyright (c) 2015 EfficiOS Inc. and Linux Foundation
  * Copyright (c) 2015 Philippe Proulx <pproulx@efficios.com>
  *
@@ -75,20 +71,19 @@ BT_HIDDEN
 void bt_attributes_destroy(struct bt_private_value *attr_obj)
 {
        BT_LOGD("Destroying attributes object: addr=%p", attr_obj);
-       bt_object_put_ref(attr_obj);
+       BT_OBJECT_PUT_REF_AND_RESET(attr_obj);
 }
 
 BT_HIDDEN
 int64_t bt_attributes_get_count(struct bt_private_value *attr_obj)
 {
-       return bt_value_array_get_size(bt_value_borrow_from_private(attr_obj));
+       return bt_value_array_get_size(bt_private_value_borrow_value(attr_obj));
 }
 
 BT_HIDDEN
 const char *bt_attributes_get_field_name(struct bt_private_value *attr_obj,
                uint64_t index)
 {
-       int rc;
        const char *ret = NULL;
        struct bt_private_value *attr_field_obj = NULL;
        struct bt_private_value *attr_field_name_obj = NULL;
@@ -99,11 +94,11 @@ const char *bt_attributes_get_field_name(struct bt_private_value *attr_obj,
        }
 
        if (index >= bt_value_array_get_size(
-                       bt_value_borrow_from_private(attr_obj))) {
+                       bt_private_value_borrow_value(attr_obj))) {
                BT_LOGW("Invalid parameter: index is out of bounds: "
                        "index=%" PRIu64 ", count=%" PRId64,
                        index, bt_value_array_get_size(
-                               bt_value_borrow_from_private(attr_obj)));
+                               bt_private_value_borrow_value(attr_obj)));
                goto end;
        }
 
@@ -125,13 +120,8 @@ const char *bt_attributes_get_field_name(struct bt_private_value *attr_obj,
                goto end;
        }
 
-       rc = bt_value_string_get(
-               bt_value_borrow_from_private(attr_field_name_obj), &ret);
-       if (rc) {
-               BT_LOGE("Cannot get raw value from string value: value-addr=%p",
-                       attr_field_name_obj);
-               ret = NULL;
-       }
+       ret = bt_value_string_get(
+               bt_private_value_borrow_value(attr_field_name_obj));
 
 end:
        return ret;
@@ -149,11 +139,11 @@ struct bt_private_value *bt_attributes_borrow_field_value(
                goto end;
        }
 
-       if (index >= bt_value_array_get_size(bt_value_borrow_from_private(attr_obj))) {
+       if (index >= bt_value_array_get_size(bt_private_value_borrow_value(attr_obj))) {
                BT_LOGW("Invalid parameter: index is out of bounds: "
                        "index=%" PRIu64 ", count=%" PRId64,
                        index, bt_value_array_get_size(
-                               bt_value_borrow_from_private(attr_obj)));
+                               bt_private_value_borrow_value(attr_obj)));
                goto end;
        }
 
@@ -187,7 +177,7 @@ struct bt_private_value *bt_attributes_borrow_field_by_name(
        struct bt_private_value *attr_field_name_obj = NULL;
 
        attr_size = bt_value_array_get_size(
-               bt_value_borrow_from_private(attr_obj));
+               bt_private_value_borrow_value(attr_obj));
        if (attr_size < 0) {
                BT_LOGE("Cannot get array value's size: value-addr=%p",
                        attr_obj);
@@ -195,7 +185,6 @@ struct bt_private_value *bt_attributes_borrow_field_by_name(
        }
 
        for (i = 0; i < attr_size; ++i) {
-               int ret;
                const char *field_name;
 
                value_obj = bt_private_value_array_borrow_element_by_index(
@@ -216,14 +205,8 @@ struct bt_private_value *bt_attributes_borrow_field_by_name(
                        goto error;
                }
 
-               ret = bt_value_string_get(
-                       bt_value_borrow_from_private(attr_field_name_obj),
-                       &field_name);
-               if (ret) {
-                       BT_LOGE("Cannot get raw value from string value: value-addr=%p",
-                               attr_field_name_obj);
-                       goto error;
-               }
+               field_name = bt_value_string_get(
+                       bt_private_value_borrow_value(attr_field_name_obj));
 
                if (!strcmp(field_name, name)) {
                        break;
@@ -258,7 +241,7 @@ int bt_attributes_set_field_value(struct bt_private_value *attr_obj,
        if (attr_field_obj) {
                ret = bt_private_value_array_set_element_by_index(
                        attr_field_obj, BT_ATTR_VALUE_INDEX,
-                       bt_value_borrow_from_private(value_obj));
+                       bt_private_value_borrow_value(value_obj));
                attr_field_obj = NULL;
                goto end;
        }
@@ -273,7 +256,7 @@ int bt_attributes_set_field_value(struct bt_private_value *attr_obj,
        ret = bt_private_value_array_append_string_element(attr_field_obj,
                name);
        ret |= bt_private_value_array_append_element(attr_field_obj,
-               bt_value_borrow_from_private(value_obj));
+               bt_private_value_borrow_value(value_obj));
        if (ret) {
                BT_LOGE("Cannot append elements to array value: addr=%p",
                        attr_field_obj);
@@ -281,7 +264,7 @@ int bt_attributes_set_field_value(struct bt_private_value *attr_obj,
        }
 
        ret = bt_private_value_array_append_element(attr_obj,
-               bt_value_borrow_from_private(attr_field_obj));
+               bt_private_value_borrow_value(attr_field_obj));
        if (ret) {
                BT_LOGE("Cannot append element to array value: "
                        "array-value-addr=%p, element-value-addr=%p",
@@ -339,7 +322,7 @@ int bt_attributes_freeze(struct bt_private_value *attr_obj)
        }
 
        BT_LOGD("Freezing attributes object: value-addr=%p", attr_obj);
-       count = bt_value_array_get_size(bt_value_borrow_from_private(attr_obj));
+       count = bt_value_array_get_size(bt_private_value_borrow_value(attr_obj));
        BT_ASSERT(count >= 0);
 
        /*
@@ -359,7 +342,7 @@ int bt_attributes_freeze(struct bt_private_value *attr_obj)
                        goto end;
                }
 
-               bt_value_freeze(bt_value_borrow_from_private(obj));
+               bt_value_freeze(bt_private_value_borrow_value(obj));
        }
 
 end:
This page took 0.02603 seconds and 4 git commands to generate.