]> sigrok.org Git - sigrok-cli.git/blobdiff - decode.c
HACKING: Update URL to Linux kernel coding style.
[sigrok-cli.git] / decode.c
index 8a52edac4aea5610b3443f1bcd59869f1a9d5a6a..2bcc0ae13f53306a2743abc7e692695523a5eff9 100644 (file)
--- a/decode.c
+++ b/decode.c
@@ -179,7 +179,7 @@ static int register_pd(char *opt_pds, char *opt_pd_annotations)
                 * in the stack.
                 */
                if (!opt_pd_annotations) {
-                       g_hash_table_insert(pd_ann_visible, g_strdup(di->inst_id),
+                       g_hash_table_insert(pd_ann_visible, g_strdup(di->decoder->id),
                                        g_slist_append(NULL, GINT_TO_POINTER(-1)));
                }
                if (di_prior) {
@@ -194,6 +194,10 @@ static int register_pd(char *opt_pds, char *opt_pd_annotations)
                                g_hash_table_remove(pd_ann_visible, di_prior->inst_id);
                }
                di_prior = di;
+               g_free(pd_name);
+               g_hash_table_destroy(pd_opthash);
+               g_hash_table_destroy(options);
+               pd_opthash = options = NULL;
        }
 
        if (pd_opthash)
@@ -204,7 +208,6 @@ static int register_pd(char *opt_pds, char *opt_pd_annotations)
                g_hash_table_destroy(channels);
 
        g_strfreev(pdtokens);
-       g_free(pd_name);
 
        return ret;
 }
@@ -272,6 +275,7 @@ static void map_pd_inst_channels(void *key, void *value, void *user_data)
        }
 
        srd_inst_channel_set_all(di, channel_indices);
+       g_hash_table_destroy(channel_indices);
 }
 
 void map_pd_channels(struct sr_dev_inst *sdi)
@@ -426,10 +430,11 @@ void show_pd_annotations(struct srd_proto_data *pdata, void *cb_data)
        if (!pd_ann_visible)
                return;
 
-       if (!g_hash_table_lookup_extended(pd_ann_visible, pdata->pdo->di->inst_id,
-                       NULL, (void **)&ann_list))
+       if (!g_hash_table_lookup_extended(pd_ann_visible, pdata->pdo->di->decoder->id,
+                       NULL, (void **)&ann_list)) {
                /* Not in the list of PDs whose annotations we're showing. */
                return;
+       }
 
        dec = pdata->pdo->di->decoder;
        pda = pdata->data;