memblockq: decode unset chunks as NULL chunks again

This fixes asserts beeing hit when see requests are posted via the
native protocol.
This commit is contained in:
Lennart Poettering 2011-04-21 21:05:51 +02:00
parent e5f547fe70
commit 575ba65714
3 changed files with 13 additions and 1 deletions

View file

@ -321,7 +321,7 @@ void pa_asyncmsgq_write_after_poll(pa_asyncmsgq *a) {
int pa_asyncmsgq_dispatch(pa_msgobject *object, int code, void *userdata, int64_t offset, pa_memchunk *memchunk) {
if (object)
return object->process_msg(object, code, userdata, offset, memchunk);
return object->process_msg(object, code, userdata, offset, pa_memchunk_isset(memchunk) ? memchunk : NULL);
return 0;
}

View file

@ -110,3 +110,12 @@ pa_memchunk* pa_memchunk_memcpy(pa_memchunk *dst, pa_memchunk *src) {
return dst;
}
pa_bool_t pa_memchunk_isset(pa_memchunk *chunk) {
assert(chunk);
return
chunk->memblock ||
chunk->index > 0 ||
chunk->length > 0;
}

View file

@ -50,4 +50,7 @@ pa_memchunk *pa_memchunk_will_need(const pa_memchunk *c);
/* Copy the data in the src memchunk to the dst memchunk */
pa_memchunk* pa_memchunk_memcpy(pa_memchunk *dst, pa_memchunk *src);
/* Return TRUE if any field is set != 0 */
pa_bool_t pa_memchunk_isset(pa_memchunk *c);
#endif