Fix: allow NULL (unnamed) in bt_ctf_stream_class_{get,set}_name()
[babeltrace.git] / plugins / lttng-utils / copy.c
index d3a6878b6f5e58208fff069ca85d15cc0ddb39c2..eca816851018849c0c1fe8d7d7161aba0e67734f 100644 (file)
@@ -867,15 +867,28 @@ struct bt_ctf_packet *insert_new_packet(struct debug_info_iterator *debug_it,
                struct debug_info_trace *di_trace)
 {
        struct bt_ctf_packet *writer_packet;
+       int ret;
 
        writer_packet = bt_ctf_packet_create(writer_stream);
        if (!writer_packet) {
                fprintf(debug_it->err, "[error] %s in %s:%d\n", __func__,
                                __FILE__, __LINE__);
-               goto end;
+               goto error;
+       }
+
+       ret = ctf_packet_copy_header(debug_it->err, packet, writer_packet);
+       if (ret) {
+               fprintf(debug_it->err, "[error] %s in %s:%d\n", __func__,
+                               __FILE__, __LINE__);
+               goto error;
        }
-       g_hash_table_insert(di_trace->packet_map, (gpointer) packet, writer_packet);
 
+       g_hash_table_insert(di_trace->packet_map, (gpointer) packet,
+                       writer_packet);
+       goto end;
+
+error:
+       BT_PUT(writer_packet);
 end:
        return writer_packet;
 }
@@ -1032,11 +1045,7 @@ struct bt_ctf_stream_class *copy_stream_class_debug_info(FILE *err,
        int ret_int;
        const char *name = bt_ctf_stream_class_get_name(stream_class);
 
-       if (strlen(name) == 0) {
-               name = NULL;
-       }
-
-       writer_stream_class = bt_ctf_stream_class_create(name);
+       writer_stream_class = bt_ctf_stream_class_create_empty(name);
        if (!writer_stream_class) {
                fprintf(err, "[error] %s in %s:%d\n",
                                __func__, __FILE__, __LINE__);
@@ -1044,20 +1053,16 @@ struct bt_ctf_stream_class *copy_stream_class_debug_info(FILE *err,
        }
 
        type = bt_ctf_stream_class_get_packet_context_type(stream_class);
-       if (!type) {
-               fprintf(err, "[error] %s in %s:%d\n", __func__, __FILE__,
-                               __LINE__);
-               goto error;
-       }
-
-       ret_int = bt_ctf_stream_class_set_packet_context_type(
-                       writer_stream_class, type);
-       if (ret_int < 0) {
-               fprintf(err, "[error] %s in %s:%d\n", __func__, __FILE__,
-                               __LINE__);
-               goto error;
+       if (type) {
+               ret_int = bt_ctf_stream_class_set_packet_context_type(
+                               writer_stream_class, type);
+               if (ret_int < 0) {
+                       fprintf(err, "[error] %s in %s:%d\n", __func__, __FILE__,
+                                       __LINE__);
+                       goto error;
+               }
+               BT_PUT(type);
        }
-       BT_PUT(type);
 
        type = bt_ctf_stream_class_get_event_header_type(stream_class);
        if (type) {
@@ -1368,8 +1373,8 @@ struct bt_ctf_packet *debug_info_new_packet(
                struct bt_ctf_packet *packet)
 {
        struct bt_ctf_stream *stream = NULL, *writer_stream = NULL;
-       struct bt_ctf_field *writer_packet_context = NULL;
        struct bt_ctf_packet *writer_packet = NULL;
+       struct bt_ctf_field *packet_context = NULL;
        struct debug_info_trace *di_trace;
        int int_ret;
 
@@ -1412,19 +1417,16 @@ struct bt_ctf_packet *debug_info_new_packet(
                goto error;
        }
 
-       writer_packet_context = ctf_copy_packet_context(debug_it->err, packet,
-                       writer_stream);
-       if (!writer_packet_context) {
-               fprintf(debug_it->err, "[error] %s in %s:%d\n",
-                               __func__, __FILE__, __LINE__);
-               goto error;
-       }
-
-       int_ret = bt_ctf_packet_set_context(writer_packet, writer_packet_context);
-       if (int_ret) {
-               fprintf(debug_it->err, "[error] %s in %s:%d\n",
-                               __func__, __FILE__, __LINE__);
-               goto error;
+       packet_context = bt_ctf_packet_get_context(packet);
+       if (packet_context) {
+               int_ret = ctf_packet_copy_context(debug_it->err,
+                               packet, writer_stream, writer_packet);
+               if (int_ret < 0) {
+                       fprintf(debug_it->err, "[error] %s in %s:%d\n",
+                                       __func__, __FILE__, __LINE__);
+                       goto error;
+               }
+               BT_PUT(packet_context);
        }
 
        bt_get(writer_packet);
@@ -1433,7 +1435,7 @@ struct bt_ctf_packet *debug_info_new_packet(
 error:
 
 end:
-       bt_put(writer_packet_context);
+       bt_put(packet_context);
        bt_put(writer_stream);
        bt_put(stream);
        return writer_packet;
@@ -1805,7 +1807,8 @@ int copy_set_debug_info_stream_event_context(FILE *err,
                                goto error;
                        }
 
-                       ret = bt_ctf_field_structure_set_field(writer_event_context,
+                       ret = bt_ctf_field_structure_set_field_by_name(
+                                       writer_event_context,
                                        field_name, copy_field);
                        if (ret) {
                                fprintf(err, "[error] %s in %s:%d\n", __func__,
@@ -1900,7 +1903,7 @@ int set_event_clock_value(FILE *err, struct bt_ctf_event *event,
 {
        struct bt_ctf_clock_class *clock_class = NULL;
        struct bt_ctf_clock_value *clock_value = NULL;
-       int ret;
+       int ret = 0;
 
        clock_class = event_get_clock_class(err, event);
        if (!clock_class) {
This page took 0.041151 seconds and 4 git commands to generate.