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;
}
}
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
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;
}