X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=decode.c;h=adbe73b32e90a80209f7a3f31a1248a23d971f9b;hp=6b3490a1d4ce1b0b206e8dc0a073fbc9d7ab4ba4;hb=c5e0e72ee3bcc799d1510c9fb91b3a0073766b2a;hpb=551f570c7b6b572d83b93f961b13580d4839fff6 diff --git a/decode.c b/decode.c index 6b3490a..adbe73b 100644 --- a/decode.c +++ b/decode.c @@ -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) @@ -446,12 +450,12 @@ void show_pd_annotations(struct srd_proto_data *pdata, void *cb_data) if (opt_loglevel <= SR_LOG_WARN) { /* Show only the longest annotation. */ - printf("%s", pda->ann_text[0]); + printf("%s: %s", pdata->pdo->proto_id, pda->ann_text[0]); } else if (opt_loglevel >= SR_LOG_INFO) { /* Sample numbers and quotes around the longest annotation. */ printf("%"PRIu64"-%"PRIu64"", pdata->start_sample, pdata->end_sample); if (opt_loglevel == SR_LOG_INFO) { - printf(" \"%s\"", pda->ann_text[0]); + printf(" %s \"%s\"", pdata->pdo->proto_id, pda->ann_text[0]); } else { /* Protocol decoder id, annotation class, * all annotation strings. */