#include <string.h>
#include <string.h>
#include <inttypes.h>
+#include <babeltrace2/babeltrace.h>
+
#include "compat/compiler.h"
#include "common/common.h"
-#include <babeltrace2/value-const.h>
-#include <babeltrace2/value.h>
#include "compat/glib.h"
-#include <babeltrace2/types.h>
#include "lib/assert-pre.h"
#include "lib/value.h"
#include "common/assert.h"
static
struct bt_value *bt_value_null_copy(const struct bt_value *null_obj)
{
+ BT_ASSERT(null_obj == bt_value_null);
+
+ bt_object_get_no_null_check(bt_value_null);
return (void *) bt_value_null;
}
const struct bt_value_array *array_obj_a =
BT_VALUE_TO_ARRAY(object_a);
- if (bt_value_array_get_size(object_a) !=
- bt_value_array_get_size(object_b)) {
+ if (bt_value_array_get_length(object_a) !=
+ bt_value_array_get_length(object_b)) {
BT_LOGT("Array values are different: size mismatch "
"value-a-addr=%p, value-b-addr=%p, "
"value-a-size=%" PRId64 ", value-b-size=%" PRId64,
object_a, object_b,
- bt_value_array_get_size(object_a),
- bt_value_array_get_size(object_b));
+ bt_value_array_get_length(object_a),
+ bt_value_array_get_length(object_b));
ret = BT_FALSE;
goto end;
}
return (void *) integer_obj;
}
-struct bt_value *bt_value_unsigned_integer_create_init(uint64_t val)
+struct bt_value *bt_value_integer_unsigned_create_init(uint64_t val)
{
return bt_value_integer_create_init(BT_VALUE_TYPE_UNSIGNED_INTEGER,
val);
}
-struct bt_value *bt_value_unsigned_integer_create(void)
+struct bt_value *bt_value_integer_unsigned_create(void)
{
- return bt_value_unsigned_integer_create_init(0);
+ return bt_value_integer_unsigned_create_init(0);
}
-struct bt_value *bt_value_signed_integer_create_init(int64_t val)
+struct bt_value *bt_value_integer_signed_create_init(int64_t val)
{
return bt_value_integer_create_init(BT_VALUE_TYPE_SIGNED_INTEGER,
(uint64_t) val);
}
-struct bt_value *bt_value_signed_integer_create(void)
+struct bt_value *bt_value_integer_signed_create(void)
{
- return bt_value_signed_integer_create_init(0);
+ return bt_value_integer_signed_create_init(0);
}
struct bt_value *bt_value_real_create_init(double val)
bool_obj, val);
}
-uint64_t bt_value_unsigned_integer_get(const struct bt_value *integer_obj)
+uint64_t bt_value_integer_unsigned_get(const struct bt_value *integer_obj)
{
BT_ASSERT_PRE_DEV_NON_NULL(integer_obj, "Value object");
BT_ASSERT_PRE_DEV_VALUE_IS_TYPE(integer_obj,
return BT_VALUE_TO_INTEGER(integer_obj)->value.u;
}
-int64_t bt_value_signed_integer_get(const struct bt_value *integer_obj)
+int64_t bt_value_integer_signed_get(const struct bt_value *integer_obj)
{
BT_ASSERT_PRE_DEV_NON_NULL(integer_obj, "Value object");
BT_ASSERT_PRE_DEV_VALUE_IS_TYPE(integer_obj,
BT_VALUE_TO_INTEGER(integer_obj)->value.u = uval;
}
-void bt_value_unsigned_integer_set(struct bt_value *integer_obj,
+void bt_value_integer_unsigned_set(struct bt_value *integer_obj,
uint64_t val)
{
bt_value_integer_set(integer_obj, BT_VALUE_TYPE_UNSIGNED_INTEGER, val);
"value-addr=%p, value=%" PRIu64, integer_obj, val);
}
-void bt_value_signed_integer_set(struct bt_value *integer_obj,
+void bt_value_integer_signed_set(struct bt_value *integer_obj,
int64_t val)
{
bt_value_integer_set(integer_obj, BT_VALUE_TYPE_SIGNED_INTEGER,
return BT_FUNC_STATUS_OK;
}
-uint64_t bt_value_array_get_size(const struct bt_value *array_obj)
+uint64_t bt_value_array_get_length(const struct bt_value *array_obj)
{
BT_ASSERT_PRE_DEV_NON_NULL(array_obj, "Value object");
BT_ASSERT_PRE_DEV_VALUE_IS_TYPE(array_obj, BT_VALUE_TYPE_ARRAY);
enum bt_value_array_append_element_status ret;
struct bt_value *integer_obj = NULL;
- integer_obj = bt_value_unsigned_integer_create_init(val);
+ integer_obj = bt_value_integer_unsigned_create_init(val);
ret = bt_value_array_append_element(array_obj,
(void *) integer_obj);
bt_object_put_ref(integer_obj);
enum bt_value_array_append_element_status ret;
struct bt_value *integer_obj = NULL;
- integer_obj = bt_value_signed_integer_create_init(val);
+ integer_obj = bt_value_integer_signed_create_init(val);
ret = bt_value_array_append_element(array_obj,
(void *) integer_obj);
bt_object_put_ref(integer_obj);
}
enum bt_value_array_append_element_status
-bt_value_array_append_empty_array_element(struct bt_value *array_obj)
+bt_value_array_append_empty_array_element(struct bt_value *array_obj,
+ struct bt_value **element_obj)
{
enum bt_value_array_append_element_status ret;
struct bt_value *empty_array_obj = NULL;
empty_array_obj = bt_value_array_create();
ret = bt_value_array_append_element(array_obj,
(void *) empty_array_obj);
+
+ if (element_obj) {
+ *element_obj = empty_array_obj;
+ }
+
bt_object_put_ref(empty_array_obj);
return ret;
}
enum bt_value_array_append_element_status
-bt_value_array_append_empty_map_element(struct bt_value *array_obj)
+bt_value_array_append_empty_map_element(struct bt_value *array_obj,
+ struct bt_value **element_obj)
{
enum bt_value_array_append_element_status ret;
struct bt_value *map_obj = NULL;
map_obj = bt_value_map_create();
ret = bt_value_array_append_element(array_obj,
(void *) map_obj);
+
+ if (element_obj) {
+ *element_obj = map_obj;
+ }
+
bt_object_put_ref(map_obj);
return ret;
}
enum bt_value_map_insert_entry_status ret;
struct bt_value *integer_obj = NULL;
- integer_obj = bt_value_unsigned_integer_create_init(val);
+ integer_obj = bt_value_integer_unsigned_create_init(val);
ret = bt_value_map_insert_entry(map_obj, key,
(void *) integer_obj);
bt_object_put_ref(integer_obj);
enum bt_value_map_insert_entry_status ret;
struct bt_value *integer_obj = NULL;
- integer_obj = bt_value_signed_integer_create_init(val);
+ integer_obj = bt_value_integer_signed_create_init(val);
ret = bt_value_map_insert_entry(map_obj, key,
(void *) integer_obj);
bt_object_put_ref(integer_obj);
enum bt_value_map_insert_entry_status
bt_value_map_insert_empty_array_entry(
- struct bt_value *map_obj, const char *key)
+ struct bt_value *map_obj, const char *key,
+ bt_value **entry_obj)
{
enum bt_value_map_insert_entry_status ret;
struct bt_value *array_obj = NULL;
array_obj = bt_value_array_create();
ret = bt_value_map_insert_entry(map_obj, key,
(void *) array_obj);
+
+ if (entry_obj) {
+ *entry_obj = array_obj;
+ }
+
bt_object_put_ref(array_obj);
return ret;
}
enum bt_value_map_insert_entry_status
-bt_value_map_insert_empty_map_entry(struct bt_value *map_obj, const char *key)
+bt_value_map_insert_empty_map_entry(struct bt_value *map_obj, const char *key,
+ bt_value **entry_obj)
{
enum bt_value_map_insert_entry_status ret;
struct bt_value *empty_map_obj = NULL;
empty_map_obj = bt_value_map_create();
ret = bt_value_map_insert_entry(map_obj, key,
(void *) empty_map_obj);
+
+ if (entry_obj) {
+ *entry_obj = empty_map_obj;
+ }
+
bt_object_put_ref(empty_map_obj);
return ret;
}
const char *key_str = g_quark_to_string(GPOINTER_TO_UINT(key));
if (!func(key_str, element_obj, data)) {
- BT_LOGT("User canceled the loop: key=\"%s\", "
+ BT_LOGT("User interrupted the loop: key=\"%s\", "
"value-addr=%p, data=%p",
key_str, element_obj, data);
- ret = BT_FUNC_STATUS_CANCELED;
+ ret = BT_FUNC_STATUS_INTERRUPTED;
break;
}
}