From: Lennart Poettering Date: Tue, 18 Sep 2007 23:24:13 +0000 (+0000) Subject: properly release memblock always abd as soon as possible X-Git-Tag: 1.0_branch~2762^2~1^2~106 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=781cf499cf1cc36bd4774ff7e4a09f6db4e65038;p=profile%2Fivi%2Fpulseaudio.git properly release memblock always abd as soon as possible git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1864 fefdeb5f-60dc-0310-8127-8f9354f1896f --- diff --git a/src/modules/rtp/rtp.c b/src/modules/rtp/rtp.c index e2496c7..60df727 100644 --- a/src/modules/rtp/rtp.c +++ b/src/modules/rtp/rtp.c @@ -166,7 +166,7 @@ int pa_rtp_recv(pa_rtp_context *c, pa_memchunk *chunk, pa_mempool *pool) { pa_assert(c); pa_assert(chunk); - chunk->memblock = NULL; + pa_memchunk_reset(chunk); if (ioctl(c->fd, FIONREAD, &size) < 0) { pa_log_warn("FIONREAD failed: %s", pa_cstrerror(errno)); @@ -189,7 +189,10 @@ int pa_rtp_recv(pa_rtp_context *c, pa_memchunk *chunk, pa_mempool *pool) { m.msg_controllen = 0; m.msg_flags = 0; - if ((r = recvmsg(c->fd, &m, 0)) != size) { + r = recvmsg(c->fd, &m, 0); + pa_memblock_release(chunk->memblock); + + if (r != size) { if (r < 0 && errno != EAGAIN && errno != EINTR) pa_log_warn("recvmsg() failed: %s", r < 0 ? pa_cstrerror(errno) : "size mismatch"); @@ -244,10 +247,8 @@ int pa_rtp_recv(pa_rtp_context *c, pa_memchunk *chunk, pa_mempool *pool) { return 0; fail: - if (chunk->memblock) { - pa_memblock_release(chunk->memblock); + if (chunk->memblock) pa_memblock_unref(chunk->memblock); - } return -1; }