mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-10 13:29:58 -05:00
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
This commit is contained in:
parent
1fd9afdf7d
commit
781cf499cf
1 changed files with 6 additions and 5 deletions
|
|
@ -166,7 +166,7 @@ int pa_rtp_recv(pa_rtp_context *c, pa_memchunk *chunk, pa_mempool *pool) {
|
||||||
pa_assert(c);
|
pa_assert(c);
|
||||||
pa_assert(chunk);
|
pa_assert(chunk);
|
||||||
|
|
||||||
chunk->memblock = NULL;
|
pa_memchunk_reset(chunk);
|
||||||
|
|
||||||
if (ioctl(c->fd, FIONREAD, &size) < 0) {
|
if (ioctl(c->fd, FIONREAD, &size) < 0) {
|
||||||
pa_log_warn("FIONREAD failed: %s", pa_cstrerror(errno));
|
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_controllen = 0;
|
||||||
m.msg_flags = 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)
|
if (r < 0 && errno != EAGAIN && errno != EINTR)
|
||||||
pa_log_warn("recvmsg() failed: %s", r < 0 ? pa_cstrerror(errno) : "size mismatch");
|
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;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
if (chunk->memblock) {
|
if (chunk->memblock)
|
||||||
pa_memblock_release(chunk->memblock);
|
|
||||||
pa_memblock_unref(chunk->memblock);
|
pa_memblock_unref(chunk->memblock);
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue