make output modules a bit more crashproof

the event handler in output modules is now optional.
This commit is contained in:
Bert Vermeulen 2011-01-13 02:05:39 +01:00
parent 2507648e63
commit 9ab95e5408
3 changed files with 12 additions and 23 deletions

View File

@ -24,24 +24,6 @@
#include <sigrok.h>
#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,
};

View File

@ -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;
}

View File

@ -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;