From: Bert Vermeulen Date: Thu, 13 Jan 2011 01:05:39 +0000 (+0100) Subject: make output modules a bit more crashproof X-Git-Tag: libsigrok-0.1.0~442 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=9ab95e54083b62c060cddd1e2762529c762d90be;p=libsigrok.git make output modules a bit more crashproof the event handler in output modules is now optional. --- diff --git a/output/output_binary.c b/output/output_binary.c index 41a8caee..2e6603d5 100644 --- a/output/output_binary.c +++ b/output/output_binary.c @@ -24,24 +24,6 @@ #include #include "config.h" -static int event(struct output *o, int event_type, char **data_out, - uint64_t *length_out) -{ - /* Prevent compiler warnings. */ - o = o; - - switch (event_type) { - case DF_TRIGGER: - /* TODO? Ignore? */ - break; - case DF_END: - *data_out = NULL; - *length_out = 0; - break; - } - - return SIGROK_OK; -} static int data(struct output *o, char *data_in, uint64_t length_in, char **data_out, uint64_t *length_out) @@ -67,5 +49,5 @@ struct output_format output_binary = { DF_LOGIC, NULL, data, - event, + NULL, }; diff --git a/output/output_gnuplot.c b/output/output_gnuplot.c index 94c566fa..5ad9cc5b 100644 --- a/output/output_gnuplot.c +++ b/output/output_gnuplot.c @@ -127,16 +127,17 @@ static int event(struct output *o, int event_type, char **data_out, ctx = o->internal; switch (event_type) { case DF_TRIGGER: - /* TODO */ + /* TODO: can a trigger mark be in a gnuplot data file? */ break; case DF_END: - *data_out = NULL; - *length_out = 0; free(o->internal); o->internal = NULL; break; } + *data_out = NULL; + *length_out = 0; + return SIGROK_OK; } diff --git a/output/output_vcd.c b/output/output_vcd.c index 190e9e45..34b150d4 100644 --- a/output/output_vcd.c +++ b/output/output_vcd.c @@ -135,7 +135,9 @@ static int event(struct output *o, int event_type, char **data_out, ctx = o->internal; switch (event_type) { case DF_TRIGGER: - /* TODO */ + /* TODO: can a trigger mark be in a VCD file? */ + *data_out = NULL; + *length_out = 0; break; case DF_END: outlen = strlen("$dumpoff\n$end\n"); @@ -149,6 +151,10 @@ static int event(struct output *o, int event_type, char **data_out, free(o->internal); o->internal = NULL; break; + default: + *data_out = NULL; + *length_out = 0; + break; } return SIGROK_OK;