]> sigrok.org Git - pulseview.git/commitdiff
Fix #1162 by always submitting all changed options to libsrd
authorSoeren Apel <redacted>
Tue, 17 Apr 2018 20:23:23 +0000 (22:23 +0200)
committerUwe Hermann <redacted>
Wed, 18 Apr 2018 12:38:10 +0000 (14:38 +0200)
pv/data/decode/decoder.cpp

index c6995bcf703a56cb13b4ba347acb2c61aa11d17e..6ce60da8559c96e1e81e7b4e974ba4a6d42874a5 100644 (file)
@@ -91,8 +91,12 @@ void Decoder::set_option(const char *id, GVariant *value)
                GHashTable *const opt_hash = g_hash_table_new_full(g_str_hash,
                        g_str_equal, g_free, (GDestroyNotify)g_variant_unref);
 
-               g_variant_ref(value);
-               g_hash_table_insert(opt_hash, (void*)g_strdup(id), value);
+               for (const auto& option : options_) {
+                       GVariant *const value = option.second;
+                       g_variant_ref(value);
+                       g_hash_table_replace(opt_hash, (void*)g_strdup(
+                               option.first.c_str()), value);
+               }
 
                srd_inst_option_set(decoder_inst_, opt_hash);
                g_hash_table_destroy(opt_hash);