clap

CLAP Audio Plugin API
Log | Files | Refs | README | LICENSE

commit ca11a395dc2002027c91253744c9206ae142b2cb
parent 57ed722be1fe7905070e6e9a915b1a37b1a22995
Author: Alexandre Bique <bique.alexandre@gmail.com>
Date:   Thu, 29 Sep 2016 17:36:50 +0200

Fix parsing of track events

Diffstat:
Minclude/clap/helpers/midi-parser.c | 11+++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/include/clap/helpers/midi-parser.c b/include/clap/helpers/midi-parser.c @@ -206,14 +206,16 @@ static inline bool clap_midi_parse_vtime(struct clap_midi_parser *parser) { uint8_t nbytes = 0; - bool cont = false; // continue flag + uint8_t cont = 1; // continue flag parser->vtime = 0; - for (nbytes = 0; cont; ++nbytes) { - if (parser->size < 1 + nbytes) + while (cont) { + ++nbytes; + + if (parser->size < nbytes) return false; - uint8_t b = parser->in[nbytes]; + uint8_t b = parser->in[nbytes - 1]; parser->vtime = (parser->vtime << 7) | (b & 0x7f); cont = b & 0x80; @@ -221,6 +223,7 @@ clap_midi_parse_vtime(struct clap_midi_parser *parser) parser->in += nbytes; parser->size -= nbytes; + parser->track.size -= nbytes; return true; }