[Decoder/Utils] Remove last empty label while enumerating labels from file
authorXavier Roumegue <xavier.roumegue@nxp.com>
Tue, 9 Mar 2021 19:46:13 +0000 (20:46 +0100)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Fri, 12 Mar 2021 04:29:04 +0000 (13:29 +0900)
While parsing the labels file, a label per line is expected.
g_strsplit(file_contents, '\n', -1) is used to parse the file and
returns the label as a string vector.

The last '\n' in the file introduces an additional empty element, as the
delimiter involves 2 elements.

Hence, the patch is removing the last trailing '\n' to avoid this
additional dummy element in the labels list.

Signed-off-by: Xavier Roumegue <xavier.roumegue@nxp.com>
ext/nnstreamer/tensor_decoder/tensordecutil.c

index 76fa4f3..ef6fc30 100644 (file)
@@ -38,6 +38,10 @@ loadImageLabels (const char *label_path, imglabel_t * l)
     g_clear_error (&err);
     return;
   }
+  len = strlen (contents);
+
+  if (contents[len - 1] == '\n')
+    contents[len - 1] = '\0';
 
   _labels = g_strsplit (contents, "\n", -1);
   l->total_labels = g_strv_length (_labels);