goto end;
}
- bt_object_set_is_shared((void *) field, false);
bt_field_type_freeze(type);
end:
return field_common->type->id;
}
-bt_bool bt_field_is_integer(struct bt_field *field)
-{
- return bt_field_get_type_id(field) == BT_FIELD_TYPE_ID_INTEGER;
-}
-
-bt_bool bt_field_is_floating_point(struct bt_field *field)
-{
- return bt_field_get_type_id(field) == BT_FIELD_TYPE_ID_FLOAT;
-}
-
-bt_bool bt_field_is_enumeration(struct bt_field *field)
-{
- return bt_field_get_type_id(field) == BT_FIELD_TYPE_ID_ENUM;
-}
-
-bt_bool bt_field_is_string(struct bt_field *field)
-{
- return bt_field_get_type_id(field) == BT_FIELD_TYPE_ID_STRING;
-}
-
-bt_bool bt_field_is_structure(struct bt_field *field)
-{
- return bt_field_get_type_id(field) == BT_FIELD_TYPE_ID_STRUCT;
-}
-
-bt_bool bt_field_is_array(struct bt_field *field)
-{
- return bt_field_get_type_id(field) == BT_FIELD_TYPE_ID_ARRAY;
-}
-
-bt_bool bt_field_is_sequence(struct bt_field *field)
-{
- return bt_field_get_type_id(field) == BT_FIELD_TYPE_ID_SEQUENCE;
-}
-
-bt_bool bt_field_is_variant(struct bt_field *field)
-{
- return bt_field_get_type_id(field) == BT_FIELD_TYPE_ID_VARIANT;
-}
-
int64_t bt_field_sequence_get_length(struct bt_field *field)
{
return bt_field_common_sequence_get_length((void *) field);
if (integer) {
bt_field_common_initialize(BT_TO_COMMON(integer), (void *) type,
- NULL, &bt_field_integer_methods);
+ false, NULL, &bt_field_integer_methods);
BT_LOGD("Created integer field object: addr=%p, ft-addr=%p",
integer, type);
} else {
if (enumeration) {
bt_field_common_initialize(
BT_TO_COMMON(BT_TO_COMMON(enumeration)),
- (void *) type, NULL, &bt_field_enumeration_methods);
+ (void *) type, false, NULL,
+ &bt_field_enumeration_methods);
BT_LOGD("Created enumeration field object: addr=%p, ft-addr=%p",
enumeration, type);
} else {
if (floating_point) {
bt_field_common_initialize(BT_TO_COMMON(floating_point),
- (void *) type, NULL, &bt_field_floating_point_methods);
+ (void *) type, false, NULL,
+ &bt_field_floating_point_methods);
BT_LOGD("Created floating point number field object: addr=%p, ft-addr=%p",
floating_point, type);
} else {
BT_HIDDEN
int bt_field_common_structure_initialize(struct bt_field_common *field,
struct bt_field_type_common *type,
- bt_object_release_func release_func,
+ bool is_shared, bt_object_release_func release_func,
struct bt_field_common_methods *methods,
bt_field_common_create_func field_create_func,
GDestroyNotify field_release_func)
size_t i;
BT_LOGD("Initializing common structure field object: ft-addr=%p", type);
- bt_field_common_initialize(field, type, release_func, methods);
+ bt_field_common_initialize(field, type, is_shared,
+ release_func, methods);
structure->fields = g_ptr_array_new_with_free_func(field_release_func);
g_ptr_array_set_size(structure->fields, structure_type->fields->len);
}
iret = bt_field_common_structure_initialize(BT_TO_COMMON(structure),
- (void *) type, NULL, &bt_field_structure_methods,
+ (void *) type, false, NULL, &bt_field_structure_methods,
(bt_field_common_create_func) bt_field_create_recursive,
(GDestroyNotify) bt_field_destroy_recursive);
if (iret) {
BT_HIDDEN
int bt_field_common_variant_initialize(struct bt_field_common *field,
struct bt_field_type_common *type,
- bt_object_release_func release_func,
+ bool is_shared, bt_object_release_func release_func,
struct bt_field_common_methods *methods,
bt_field_common_create_func field_create_func,
GDestroyNotify field_release_func)
size_t i;
BT_LOGD("Initializing common variant field object: ft-addr=%p", type);
- bt_field_common_initialize(field, type, release_func, methods);
+ bt_field_common_initialize(field, type, is_shared,
+ release_func, methods);
ret = bt_field_type_common_variant_update_choices(type);
if (ret) {
BT_LOGE("Cannot update common variant field type choices: "
BT_HIDDEN
int bt_field_common_string_initialize(struct bt_field_common *field,
struct bt_field_type_common *type,
- bt_object_release_func release_func,
+ bool is_shared, bt_object_release_func release_func,
struct bt_field_common_methods *methods)
{
int ret = 0;
struct bt_field_common_string *string = BT_FROM_COMMON(field);
BT_LOGD("Initializing common string field object: ft-addr=%p", type);
- bt_field_common_initialize(field, type, release_func, methods);
+ bt_field_common_initialize(field, type, is_shared,
+ release_func, methods);
string->buf = g_array_sized_new(FALSE, FALSE, sizeof(char), 1);
if (!string->buf) {
ret = -1;
}
iret = bt_field_common_variant_initialize(BT_TO_COMMON(variant),
- (void *) type, NULL, &bt_field_variant_methods,
+ (void *) type, false, NULL, &bt_field_variant_methods,
(bt_field_common_create_func) bt_field_create_recursive,
(GDestroyNotify) bt_field_destroy_recursive);
if (iret) {
BT_HIDDEN
int bt_field_common_array_initialize(struct bt_field_common *field,
struct bt_field_type_common *type,
- bt_object_release_func release_func,
+ bool is_shared, bt_object_release_func release_func,
struct bt_field_common_methods *methods,
bt_field_common_create_func field_create_func,
GDestroyNotify field_destroy_func)
BT_LOGD("Initializing common array field object: ft-addr=%p", type);
BT_ASSERT(type);
- bt_field_common_initialize(field, type, release_func, methods);
+ bt_field_common_initialize(field, type, is_shared,
+ release_func, methods);
array_length = array_type->length;
array->elements = g_ptr_array_sized_new(array_length);
if (!array->elements) {
}
ret = bt_field_common_array_initialize(BT_TO_COMMON(array),
- (void *) type, NULL, &bt_field_array_methods,
+ (void *) type, false, NULL, &bt_field_array_methods,
(bt_field_common_create_func) bt_field_create_recursive,
(GDestroyNotify) bt_field_destroy_recursive);
if (ret) {
BT_HIDDEN
int bt_field_common_sequence_initialize(struct bt_field_common *field,
struct bt_field_type_common *type,
- bt_object_release_func release_func,
+ bool is_shared, bt_object_release_func release_func,
struct bt_field_common_methods *methods,
GDestroyNotify field_destroy_func)
{
BT_LOGD("Initializing common sequence field object: ft-addr=%p", type);
BT_ASSERT(type);
- bt_field_common_initialize(field, type, release_func, methods);
+ bt_field_common_initialize(field, type, is_shared,
+ release_func, methods);
sequence->elements = g_ptr_array_new();
if (!sequence->elements) {
ret = -1;
}
ret = bt_field_common_sequence_initialize(BT_TO_COMMON(sequence),
- (void *) type, NULL, &bt_field_sequence_methods,
+ (void *) type, false, NULL, &bt_field_sequence_methods,
(GDestroyNotify) bt_field_destroy_recursive);
if (ret) {
BT_PUT(sequence);
if (string) {
bt_field_common_string_initialize(BT_TO_COMMON(string),
- (void *) type, NULL, &bt_field_string_methods);
+ (void *) type, false, NULL, &bt_field_string_methods);
BT_LOGD("Created string field object: addr=%p, ft-addr=%p",
string, type);
} else {
goto end;
}
- if (field->frozen) {
- goto end;
- }
-
BT_LOGD("Setting field object's frozen state: addr=%p, is-frozen=%d",
field, is_frozen);
BT_ASSERT(field_type_common_has_known_id(field->type));