src.ctf.lttng-live: use std::vector in lttng_live_get_one_metadata_packet
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 21 Jun 2022 00:26:56 +0000 (20:26 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 23 Aug 2022 16:06:16 +0000 (12:06 -0400)
Use an std::vector to manage the buffer used to store the received data.

Change-Id: I04f99440573c722d982378ef9d8bb47f35b343aa
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/8413
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
src/plugins/ctf/lttng-live/viewer-connection.cpp

index c3d8f937e5787d5c4d06d6d80b5dfdcdb5204895..b0bee11af51ba3bfceb35ba72b8e40c4a52e1d1f 100644 (file)
@@ -1186,7 +1186,7 @@ lttng_live_get_one_metadata_packet(struct lttng_live_trace *trace, std::vector<c
     struct lttng_viewer_cmd cmd;
     struct lttng_viewer_get_metadata rq;
     struct lttng_viewer_metadata_packet rp;
-    gchar *data = NULL;
+    std::vector<char> data;
     struct lttng_live_session *session = trace->session;
     struct lttng_live_msg_iter *lttng_live_msg_iter = session->lttng_live_msg_iter;
     struct lttng_live_metadata *metadata = trace->metadata;
@@ -1267,14 +1267,9 @@ lttng_live_get_one_metadata_packet(struct lttng_live_trace *trace, std::vector<c
         goto end;
     }
 
-    data = g_new0(gchar, len);
-    if (!data) {
-        BT_CLOGE_ERRNO_APPEND_CAUSE("Failed to allocate data buffer", ".");
-        status = LTTNG_LIVE_GET_ONE_METADATA_STATUS_ERROR;
-        goto end;
-    }
+    data.resize(len);
 
-    viewer_status = lttng_live_recv(viewer_connection, data, len);
+    viewer_status = lttng_live_recv(viewer_connection, data.data(), len);
     if (viewer_status != LTTNG_LIVE_VIEWER_STATUS_OK) {
         viewer_handle_recv_status(logCfg, viewer_status, "get metadata packet");
         status = (enum lttng_live_get_one_metadata_status) viewer_status;
@@ -1284,13 +1279,12 @@ lttng_live_get_one_metadata_packet(struct lttng_live_trace *trace, std::vector<c
     /*
      * Write the metadata to the file handle.
      */
-    buf.insert(buf.end(), data, data + len);
+    buf.insert(buf.end(), data.begin(), data.end());
 
 empty_metadata_packet_retry:
     status = LTTNG_LIVE_GET_ONE_METADATA_STATUS_OK;
 
 end:
-    g_free(data);
     return status;
 }
 
This page took 0.025581 seconds and 5 git commands to generate.