X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Foutput%2Fcsv.c;h=59dcf08cd8b3357ec8e7a6b2703272365e6c3f46;hb=e66d1892d0dd16ed166fc8f13493f95de0607362;hp=f3e6e335e73907bc4927ddbee755d0bfadbb5a1d;hpb=d3cc09a612a6f8f2bf258bbd33a7dfd2c3a30968;p=libsigrok.git diff --git a/src/output/csv.c b/src/output/csv.c index f3e6e335..59dcf08c 100644 --- a/src/output/csv.c +++ b/src/output/csv.c @@ -260,7 +260,7 @@ static GString *gen_header(const struct sr_output *o, g_string_append_printf(header, "%s Channels (%d/%d):", ctx->comment, ctx->num_analog_channels + ctx->num_logic_channels, num_channels); - for (i = 0, l = o->sdi->channels; l; l = l->next, i++) { + for (l = o->sdi->channels; l; l = l->next) { ch = l->data; if (ch->enabled) g_string_append_printf(header, " %s,", ch->name); @@ -380,7 +380,7 @@ static void process_logic(struct context *ctx, if (ctx->channels[j].ch->type == SR_CHANNEL_LOGIC) { for (i = 0; i < num_samples; i++) { sample = logic->data + i * logic->unitsize; - idx = ctx->channels[ch].ch->index; + idx = ctx->channels[j].ch->index; if (ctx->label_do && !ctx->label_names) ctx->channels[j].label = "logic"; ctx->logic_samples[i * ctx->num_logic_channels + ch] = sample[idx / 8] & (1 << (idx % 8)); @@ -578,7 +578,7 @@ static int receive(const struct sr_output *o, break; case SR_DF_FRAME_BEGIN: *out = g_string_new(ctx->frame); - /* And then fall through to... */ + /* Fallthrough */ case SR_DF_END: /* Got to end of frame/session with part of the data. */ if (ctx->channels_seen) @@ -608,6 +608,7 @@ static int cleanup(struct sr_output *o) g_free((gpointer)ctx->frame); g_free((gpointer)ctx->comment); g_free((gpointer)ctx->gnuplot); + g_free((gpointer)ctx->value); g_free(ctx->previous_sample); g_free(ctx->channels); g_free(o->priv);