]> sigrok.org Git - pulseview.git/blobdiff - pv/prop/binding/decoderoptions.cpp
Key strings passed to decoder options must be newly allocated
[pulseview.git] / pv / prop / binding / decoderoptions.cpp
index 435d5f6d8bac998e03cac28deb26818cf5a4c3b0..dc3a8e974355c515322d3fb30e1920f4148afaab 100644 (file)
@@ -80,8 +80,10 @@ GVariant* DecoderOptions::getter(const char *id)
                {
                        const srd_decoder_option *const opt =
                                (srd_decoder_option*)l->data;
                {
                        const srd_decoder_option *const opt =
                                (srd_decoder_option*)l->data;
-                       if (strcmp(opt->id, id) == 0)
+                       if (strcmp(opt->id, id) == 0) {
                                val = opt->def;
                                val = opt->def;
+                               break;
+                       }
                }
        }
 
                }
        }
 
@@ -94,7 +96,7 @@ GVariant* DecoderOptions::getter(const char *id)
 void DecoderOptions::setter(const char *id, GVariant *value)
 {
        g_variant_ref(value);
 void DecoderOptions::setter(const char *id, GVariant *value)
 {
        g_variant_ref(value);
-       g_hash_table_insert(_options, (void*)id, value);
+       g_hash_table_insert(_options, (void*)g_strdup(id), value);
 }
 
 } // binding
 }
 
 } // binding