projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into bindings/python
[babeltrace.git]
/
formats
/
ctf
/
writer
/
event-fields.c
diff --git
a/formats/ctf/writer/event-fields.c
b/formats/ctf/writer/event-fields.c
index 7a37aaf989f4bd92607863b6b91b469662f50175..c4d1b968587e33f00f24f8efe0c0658c201e6ba6 100644
(file)
--- a/
formats/ctf/writer/event-fields.c
+++ b/
formats/ctf/writer/event-fields.c
@@
-179,8
+179,8
@@
struct bt_ctf_field *bt_ctf_field_create(struct bt_ctf_field_type *type)
}
type_id = bt_ctf_field_type_get_type_id(type);
}
type_id = bt_ctf_field_type_get_type_id(type);
- if (type_id <= CTF_TYPE_UNKNOWN ||
-
type_id >= NR_CTF_TYPES
) {
+ if (type_id <= CTF_TYPE_UNKNOWN ||
type_id >= NR_CTF_TYPES ||
+
bt_ctf_field_type_validate(type)
) {
goto error;
}
goto error;
}
@@
-247,13
+247,14
@@
int bt_ctf_field_sequence_set_length(struct bt_ctf_field *field,
bt_ctf_field_put(sequence->length);
}
bt_ctf_field_put(sequence->length);
}
- sequence->elements = g_ptr_array_new_full((size_t)sequence_length,
- (GDestroyNotify)bt_ctf_field_put);
+ sequence->elements = g_ptr_array_sized_new((size_t)sequence_length);
if (!sequence->elements) {
ret = -1;
goto end;
}
if (!sequence->elements) {
ret = -1;
goto end;
}
+ g_ptr_array_set_free_func(sequence->elements,
+ (GDestroyNotify)bt_ctf_field_put);
g_ptr_array_set_size(sequence->elements, (size_t)sequence_length);
bt_ctf_field_get(length_field);
sequence->length = length_field;
g_ptr_array_set_size(sequence->elements, (size_t)sequence_length);
bt_ctf_field_get(length_field);
sequence->length = length_field;
@@
-768,12
+769,13
@@
struct bt_ctf_field *bt_ctf_field_array_create(struct bt_ctf_field_type *type)
array_type = container_of(type, struct bt_ctf_field_type_array, parent);
array_length = array_type->length;
array_type = container_of(type, struct bt_ctf_field_type_array, parent);
array_length = array_type->length;
- array->elements = g_ptr_array_new_full(array_length,
- (GDestroyNotify)bt_ctf_field_put);
+ array->elements = g_ptr_array_sized_new(array_length);
if (!array->elements) {
goto error;
}
if (!array->elements) {
goto error;
}
+ g_ptr_array_set_free_func(array->elements,
+ (GDestroyNotify)bt_ctf_field_put);
g_ptr_array_set_size(array->elements, array_length);
return &array->parent;
error:
g_ptr_array_set_size(array->elements, array_length);
return &array->parent;
error:
@@
-1123,10
+1125,16
@@
int bt_ctf_field_structure_serialize(struct bt_ctf_field *field,
while (!ctf_pos_access_ok(pos,
offset_align(pos->offset,
field->type->declaration->alignment))) {
while (!ctf_pos_access_ok(pos,
offset_align(pos->offset,
field->type->declaration->alignment))) {
- increase_packet_size(pos);
+ ret = increase_packet_size(pos);
+ if (ret) {
+ goto end;
+ }
}
}
- ctf_align_pos(pos, field->type->declaration->alignment);
+ if (!ctf_align_pos(pos, field->type->declaration->alignment)) {
+ ret = -1;
+ goto end;
+ }
for (i = 0; i < structure->fields->len; i++) {
struct bt_ctf_field *field = g_ptr_array_index(
for (i = 0; i < structure->fields->len; i++) {
struct bt_ctf_field *field = g_ptr_array_index(
@@
-1137,7
+1145,7
@@
int bt_ctf_field_structure_serialize(struct bt_ctf_field *field,
break;
}
}
break;
}
}
-
+end:
return ret;
}
return ret;
}
This page took
0.036601 seconds
and
4
git commands to generate.