X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Ffs-src%2Ffs.c;h=7cbd28f8af0c5ad777c8d9d7870c1ccef627a1be;hb=7401e2d1ffcf2e41031b3a7f3e3ba9ff158876c9;hp=a0008ef21f820fe2a0247066ad247b159ef09398;hpb=05afcecd0985f33c0fd535d95adb16ed47559121;p=babeltrace.git diff --git a/plugins/ctf/fs-src/fs.c b/plugins/ctf/fs-src/fs.c index a0008ef2..7cbd28f8 100644 --- a/plugins/ctf/fs-src/fs.c +++ b/plugins/ctf/fs-src/fs.c @@ -193,7 +193,7 @@ enum bt_notification_iterator_status ctf_fs_iterator_init( } ret = bt_private_notification_iterator_set_user_data(it, notif_iter_data); - if (ret) { + if (ret != BT_NOTIFICATION_ITERATOR_STATUS_OK) { goto error; } @@ -203,10 +203,6 @@ enum bt_notification_iterator_status ctf_fs_iterator_init( error: (void) bt_private_notification_iterator_set_user_data(it, NULL); - if (ret == BT_NOTIFICATION_ITERATOR_STATUS_OK) { - ret = BT_NOTIFICATION_ITERATOR_STATUS_ERROR; - } - end: ctf_fs_notif_iter_data_destroy(notif_iter_data); return ret; @@ -602,6 +598,26 @@ end: return ds_file_group; } +/* Replace by g_ptr_array_insert when we depend on glib >= 2.40. */ +static +void array_insert(GPtrArray *array, gpointer element, size_t pos) +{ + size_t original_array_len = array->len; + + /* Allocate an unused element at the end of the array. */ + g_ptr_array_add(array, NULL); + + /* If we are not inserting at the end, move the elements by one. */ + if (pos < original_array_len) { + memmove(&(array->pdata[pos + 1]), + &(array->pdata[pos]), + (original_array_len - pos) * sizeof(gpointer)); + } + + /* Insert the value and bump the array len */ + array->pdata[pos] = element; +} + static int ctf_fs_ds_file_group_add_ds_file_info( struct ctf_fs_ds_file_group *ds_file_group, @@ -629,12 +645,7 @@ int ctf_fs_ds_file_group_add_ds_file_info( } } - if (i == ds_file_group->ds_file_infos->len) { - /* Append instead */ - i = -1; - } - - g_ptr_array_insert(ds_file_group->ds_file_infos, i, ds_file_info); + array_insert(ds_file_group->ds_file_infos, ds_file_info, i); ds_file_info = NULL; goto end; @@ -899,7 +910,7 @@ int create_ds_file_groups(struct ctf_fs_trace *ctf_fs_trace) g_string_free(name, TRUE); - if (!ds_file_group) { + if (!ds_file_group->stream) { BT_LOGE("Cannot create stream for DS file group: " "addr=%p, stream-name=\"%s\"", ds_file_group, name->str); @@ -1304,7 +1315,8 @@ struct ctf_fs_component *ctf_fs_create(struct bt_private_component *priv_comp, struct ctf_fs_component *ctf_fs; struct bt_value *value = NULL; const char *path_param; - int ret; + enum bt_component_status ret; + enum bt_value_status value_ret; ctf_fs = g_new0(struct ctf_fs_component, 1); if (!ctf_fs) { @@ -1312,7 +1324,7 @@ struct ctf_fs_component *ctf_fs_create(struct bt_private_component *priv_comp, } ret = bt_private_component_set_user_data(priv_comp, ctf_fs); - assert(ret == 0); + assert(ret == BT_COMPONENT_STATUS_OK); /* * We don't need to get a new reference here because as long as @@ -1325,8 +1337,8 @@ struct ctf_fs_component *ctf_fs_create(struct bt_private_component *priv_comp, goto error; } - ret = bt_value_string_get(value, &path_param); - assert(ret == 0); + value_ret = bt_value_string_get(value, &path_param); + assert(value_ret == BT_VALUE_STATUS_OK); BT_PUT(value); value = bt_value_map_get(params, "clock-class-offset-s"); if (value) { @@ -1334,9 +1346,9 @@ struct ctf_fs_component *ctf_fs_create(struct bt_private_component *priv_comp, BT_LOGE("clock-class-offset-s should be an integer"); goto error; } - ret = bt_value_integer_get(value, + value_ret = bt_value_integer_get(value, &ctf_fs->metadata_config.clock_class_offset_s); - assert(ret == 0); + assert(value_ret == BT_VALUE_STATUS_OK); BT_PUT(value); } @@ -1346,9 +1358,9 @@ struct ctf_fs_component *ctf_fs_create(struct bt_private_component *priv_comp, BT_LOGE("clock-class-offset-ns should be an integer"); goto error; } - ret = bt_value_integer_get(value, + value_ret = bt_value_integer_get(value, &ctf_fs->metadata_config.clock_class_offset_ns); - assert(ret == 0); + assert(value_ret == BT_VALUE_STATUS_OK); BT_PUT(value); } @@ -1363,8 +1375,7 @@ struct ctf_fs_component *ctf_fs_create(struct bt_private_component *priv_comp, goto error; } - ret = create_ctf_fs_traces(ctf_fs, path_param); - if (ret) { + if (create_ctf_fs_traces(ctf_fs, path_param)) { goto error; } @@ -1374,7 +1385,7 @@ error: ctf_fs_destroy(ctf_fs); ctf_fs = NULL; ret = bt_private_component_set_user_data(priv_comp, NULL); - assert(ret == 0); + assert(ret == BT_COMPONENT_STATUS_OK); end: bt_put(value);