From 4f01de8d0614017898021a4cf80ff8d4db4cb7de Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 8 Mar 2012 18:31:35 +0000 Subject: Fix sequence ports. git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@4034 a436a847-0d15-0410-975c-d299462d15a1 --- src/lv2_evbuf.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/lv2_evbuf.c') diff --git a/src/lv2_evbuf.c b/src/lv2_evbuf.c index f3aea8d..3037e82 100644 --- a/src/lv2_evbuf.c +++ b/src/lv2_evbuf.c @@ -14,6 +14,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #include #include @@ -89,7 +90,7 @@ lv2_evbuf_reset(LV2_Evbuf* evbuf, bool input) break; case LV2_EVBUF_ATOM: if (input) { - evbuf->buf.atom.atom.size = 0; + evbuf->buf.atom.atom.size = sizeof(LV2_Atom_Sequence_Body); evbuf->buf.atom.atom.type = evbuf->atom_Sequence; } else { evbuf->buf.atom.atom.size = evbuf->capacity; @@ -105,8 +106,10 @@ lv2_evbuf_get_size(LV2_Evbuf* evbuf) case LV2_EVBUF_EVENT: return evbuf->buf.event.size; case LV2_EVBUF_ATOM: + assert(evbuf->buf.atom.atom.type != evbuf->atom_Sequence + || evbuf->buf.atom.atom.size >= sizeof(LV2_Atom_Sequence_Body)); return evbuf->buf.atom.atom.type == evbuf->atom_Sequence - ? evbuf->buf.atom.atom.size + ? evbuf->buf.atom.atom.size - sizeof(LV2_Atom_Sequence_Body) : 0; } return 0; @@ -134,7 +137,7 @@ lv2_evbuf_begin(LV2_Evbuf* evbuf) LV2_Evbuf_Iterator lv2_evbuf_end(LV2_Evbuf* evbuf) { - const size_t size = lv2_evbuf_get_size(evbuf); + const uint32_t size = lv2_evbuf_get_size(evbuf); const LV2_Evbuf_Iterator iter = { evbuf, lv2_evbuf_pad_size(size) }; return iter; } -- cgit v1.2.1