From: Uwe Hermann Date: Sat, 14 Apr 2018 17:46:43 +0000 (+0200) Subject: input/binary: Only calculate unitsize once. X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=408b6ab42beb76a4854d5885b81ffcd8914dbf34;p=libsigrok.git input/binary: Only calculate unitsize once. --- diff --git a/src/input/binary.c b/src/input/binary.c index 52e1da36..223efd88 100644 --- a/src/input/binary.c +++ b/src/input/binary.c @@ -36,6 +36,7 @@ struct context { gboolean started; uint64_t samplerate; + uint16_t unitsize; }; static int init(struct sr_input *in, GHashTable *options) @@ -60,6 +61,8 @@ static int init(struct sr_input *in, GHashTable *options) sr_channel_new(in->sdi, i, SR_CHANNEL_LOGIC, TRUE, name); } + inc->unitsize = (g_slist_length(in->sdi->channels) + 7) / 8; + return SR_OK; } @@ -92,7 +95,7 @@ static int process_buffer(struct sr_input *in) packet.type = SR_DF_LOGIC; packet.payload = &logic; - logic.unitsize = (g_slist_length(in->sdi->channels) + 7) / 8; + logic.unitsize = inc->unitsize; /* Cut off at multiple of unitsize. */ chunk_size = in->buf->len / logic.unitsize * logic.unitsize;