Fix: uninitialized variant fc in set_field_refs()
[babeltrace.git] / plugins / ctf / fs-sink / translate-trace-ir-to-ctf-ir.c
index fe3725f84d73c172795309c63a94743a5c7acaa0..699b3a5b620d9bb6abb81994704285662f6819f6 100644 (file)
@@ -896,23 +896,26 @@ end:
  * sequence field class.
  */
 static
-int set_field_refs(struct fs_sink_ctf_field_class *fc, const char *fc_name,
-               struct fs_sink_ctf_field_class *parent_fc)
+int set_field_refs(struct fs_sink_ctf_field_class * const fc,
+               const char *fc_name, struct fs_sink_ctf_field_class *parent_fc)
 {
        int ret = 0;
+       enum fs_sink_ctf_field_class_type fc_type;
        BT_ASSERT(fc);
 
-       switch (fc->type) {
+       fc_type = fc->type;
+
+       switch (fc_type) {
        case FS_SINK_CTF_FIELD_CLASS_TYPE_STRUCT:
        case FS_SINK_CTF_FIELD_CLASS_TYPE_VARIANT:
        {
                uint64_t i;
                uint64_t len;
                struct fs_sink_ctf_field_class_struct *struct_fc;
-               struct fs_sink_ctf_field_class_variant *var_fc;
+               struct fs_sink_ctf_field_class_variant *var_fc = NULL;
                struct fs_sink_ctf_named_field_class *named_fc;
 
-               if (fc->type == FS_SINK_CTF_FIELD_CLASS_TYPE_STRUCT) {
+               if (fc_type == FS_SINK_CTF_FIELD_CLASS_TYPE_STRUCT) {
                        struct_fc = (void *) fc;
                        len = struct_fc->members->len;
                } else {
@@ -925,7 +928,7 @@ int set_field_refs(struct fs_sink_ctf_field_class *fc, const char *fc_name,
                }
 
                for (i = 0; i < len; i++) {
-                       if (fc->type == FS_SINK_CTF_FIELD_CLASS_TYPE_STRUCT) {
+                       if (fc_type == FS_SINK_CTF_FIELD_CLASS_TYPE_STRUCT) {
                                named_fc = fs_sink_ctf_field_class_struct_borrow_member_by_index(
                                        struct_fc, i);
                        } else {
@@ -948,7 +951,7 @@ int set_field_refs(struct fs_sink_ctf_field_class *fc, const char *fc_name,
                struct fs_sink_ctf_field_class_array_base *array_base_fc =
                        (void *) fc;
 
-               if (fc->type == FS_SINK_CTF_FIELD_CLASS_TYPE_SEQUENCE) {
+               if (fc_type == FS_SINK_CTF_FIELD_CLASS_TYPE_SEQUENCE) {
                        ret = set_field_ref(fc, fc_name, parent_fc);
                        if (ret) {
                                goto end;
This page took 0.023993 seconds and 4 git commands to generate.