Rex Dieter e878354
From a13b6f001d0ef00f540ddf02f54915cda76109bd Mon Sep 17 00:00:00 2001
Rex Dieter e878354
From: David Henningsson <david.henningsson@canonical.com>
Rex Dieter e878354
Date: Thu, 5 Mar 2015 14:55:53 +0100
Rex Dieter e878354
Subject: [PATCH 037/118] pstream: Remove unnecessary if condition
Rex Dieter e878354
Rex Dieter e878354
Without split packets, the if condition can now be removed.
Rex Dieter e878354
Rex Dieter e878354
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Rex Dieter e878354
---
Rex Dieter e878354
 src/pulsecore/pstream.c | 97 ++++++++++++++++++++++++-------------------------
Rex Dieter e878354
 1 file changed, 47 insertions(+), 50 deletions(-)
Rex Dieter e878354
Rex Dieter e878354
diff --git a/src/pulsecore/pstream.c b/src/pulsecore/pstream.c
Rex Dieter e878354
index 877ff66..8c14fbb 100644
Rex Dieter e878354
--- a/src/pulsecore/pstream.c
Rex Dieter e878354
+++ b/src/pulsecore/pstream.c
Rex Dieter e878354
@@ -854,72 +854,69 @@ static int do_read(pa_pstream *p, struct pstream_read *re) {
Rex Dieter e878354
             }
Rex Dieter e878354
         }
Rex Dieter e878354
 
Rex Dieter e878354
-    } else if (re->index > PA_PSTREAM_DESCRIPTOR_SIZE) {
Rex Dieter e878354
-
Rex Dieter e878354
+    } else if (re->index >= ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_LENGTH]) + PA_PSTREAM_DESCRIPTOR_SIZE) {
Rex Dieter e878354
         /* Frame complete */
Rex Dieter e878354
-        if (re->index >= ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_LENGTH]) + PA_PSTREAM_DESCRIPTOR_SIZE) {
Rex Dieter e878354
 
Rex Dieter e878354
-            if (re->memblock) {
Rex Dieter e878354
-                memblock_complete(p, re);
Rex Dieter e878354
+        if (re->memblock) {
Rex Dieter e878354
+            memblock_complete(p, re);
Rex Dieter e878354
 
Rex Dieter e878354
-                /* This was a memblock frame. We can unref the memblock now */
Rex Dieter e878354
-                pa_memblock_unref(re->memblock);
Rex Dieter e878354
+            /* This was a memblock frame. We can unref the memblock now */
Rex Dieter e878354
+            pa_memblock_unref(re->memblock);
Rex Dieter e878354
 
Rex Dieter e878354
-            } else if (re->packet) {
Rex Dieter e878354
+        } else if (re->packet) {
Rex Dieter e878354
 
Rex Dieter e878354
-                if (p->receive_packet_callback)
Rex Dieter e878354
+            if (p->receive_packet_callback)
Rex Dieter e878354
 #ifdef HAVE_CREDS
Rex Dieter e878354
-                    p->receive_packet_callback(p, re->packet, &p->read_ancil_data, p->receive_packet_callback_userdata);
Rex Dieter e878354
+                p->receive_packet_callback(p, re->packet, &p->read_ancil_data, p->receive_packet_callback_userdata);
Rex Dieter e878354
 #else
Rex Dieter e878354
-                    p->receive_packet_callback(p, re->packet, NULL, p->receive_packet_callback_userdata);
Rex Dieter e878354
+                p->receive_packet_callback(p, re->packet, NULL, p->receive_packet_callback_userdata);
Rex Dieter e878354
 #endif
Rex Dieter e878354
 
Rex Dieter e878354
-                pa_packet_unref(re->packet);
Rex Dieter e878354
-            } else {
Rex Dieter e878354
-                pa_memblock *b;
Rex Dieter e878354
-                uint32_t flags = ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_FLAGS]);
Rex Dieter e878354
-                pa_assert((flags & PA_FLAG_SHMMASK) == PA_FLAG_SHMDATA);
Rex Dieter e878354
-
Rex Dieter e878354
-                pa_assert(p->import);
Rex Dieter e878354
+            pa_packet_unref(re->packet);
Rex Dieter e878354
+        } else {
Rex Dieter e878354
+            pa_memblock *b;
Rex Dieter e878354
+            uint32_t flags = ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_FLAGS]);
Rex Dieter e878354
+            pa_assert((flags & PA_FLAG_SHMMASK) == PA_FLAG_SHMDATA);
Rex Dieter e878354
 
Rex Dieter e878354
-                if (!(b = pa_memimport_get(p->import,
Rex Dieter e878354
-                                          ntohl(re->shm_info[PA_PSTREAM_SHM_BLOCKID]),
Rex Dieter e878354
-                                          ntohl(re->shm_info[PA_PSTREAM_SHM_SHMID]),
Rex Dieter e878354
-                                          ntohl(re->shm_info[PA_PSTREAM_SHM_INDEX]),
Rex Dieter e878354
-                                          ntohl(re->shm_info[PA_PSTREAM_SHM_LENGTH]),
Rex Dieter e878354
-                                          !!(flags & PA_FLAG_SHMWRITABLE)))) {
Rex Dieter e878354
+            pa_assert(p->import);
Rex Dieter e878354
 
Rex Dieter e878354
-                    if (pa_log_ratelimit(PA_LOG_DEBUG))
Rex Dieter e878354
-                        pa_log_debug("Failed to import memory block.");
Rex Dieter e878354
-                }
Rex Dieter e878354
+            if (!(b = pa_memimport_get(p->import,
Rex Dieter e878354
+                                       ntohl(re->shm_info[PA_PSTREAM_SHM_BLOCKID]),
Rex Dieter e878354
+                                       ntohl(re->shm_info[PA_PSTREAM_SHM_SHMID]),
Rex Dieter e878354
+                                       ntohl(re->shm_info[PA_PSTREAM_SHM_INDEX]),
Rex Dieter e878354
+                                       ntohl(re->shm_info[PA_PSTREAM_SHM_LENGTH]),
Rex Dieter e878354
+                                       !!(flags & PA_FLAG_SHMWRITABLE)))) {
Rex Dieter e878354
 
Rex Dieter e878354
-                if (p->receive_memblock_callback) {
Rex Dieter e878354
-                    int64_t offset;
Rex Dieter e878354
-                    pa_memchunk chunk;
Rex Dieter e878354
-
Rex Dieter e878354
-                    chunk.memblock = b;
Rex Dieter e878354
-                    chunk.index = 0;
Rex Dieter e878354
-                    chunk.length = b ? pa_memblock_get_length(b) : ntohl(re->shm_info[PA_PSTREAM_SHM_LENGTH]);
Rex Dieter e878354
-
Rex Dieter e878354
-                    offset = (int64_t) (
Rex Dieter e878354
-                            (((uint64_t) ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_OFFSET_HI])) << 32) |
Rex Dieter e878354
-                            (((uint64_t) ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_OFFSET_LO]))));
Rex Dieter e878354
-
Rex Dieter e878354
-                    p->receive_memblock_callback(
Rex Dieter e878354
-                            p,
Rex Dieter e878354
-                            ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_CHANNEL]),
Rex Dieter e878354
-                            offset,
Rex Dieter e878354
-                            ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_FLAGS]) & PA_FLAG_SEEKMASK,
Rex Dieter e878354
-                            &chunk,
Rex Dieter e878354
-                            p->receive_memblock_callback_userdata);
Rex Dieter e878354
-                }
Rex Dieter e878354
+                if (pa_log_ratelimit(PA_LOG_DEBUG))
Rex Dieter e878354
+                    pa_log_debug("Failed to import memory block.");
Rex Dieter e878354
+            }
Rex Dieter e878354
 
Rex Dieter e878354
-                if (b)
Rex Dieter e878354
-                    pa_memblock_unref(b);
Rex Dieter e878354
+            if (p->receive_memblock_callback) {
Rex Dieter e878354
+                int64_t offset;
Rex Dieter e878354
+                pa_memchunk chunk;
Rex Dieter e878354
+
Rex Dieter e878354
+                chunk.memblock = b;
Rex Dieter e878354
+                chunk.index = 0;
Rex Dieter e878354
+                chunk.length = b ? pa_memblock_get_length(b) : ntohl(re->shm_info[PA_PSTREAM_SHM_LENGTH]);
Rex Dieter e878354
+
Rex Dieter e878354
+                offset = (int64_t) (
Rex Dieter e878354
+                        (((uint64_t) ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_OFFSET_HI])) << 32) |
Rex Dieter e878354
+                        (((uint64_t) ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_OFFSET_LO]))));
Rex Dieter e878354
+
Rex Dieter e878354
+                p->receive_memblock_callback(
Rex Dieter e878354
+                        p,
Rex Dieter e878354
+                        ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_CHANNEL]),
Rex Dieter e878354
+                        offset,
Rex Dieter e878354
+                        ntohl(re->descriptor[PA_PSTREAM_DESCRIPTOR_FLAGS]) & PA_FLAG_SEEKMASK,
Rex Dieter e878354
+                        &chunk,
Rex Dieter e878354
+                        p->receive_memblock_callback_userdata);
Rex Dieter e878354
             }
Rex Dieter e878354
 
Rex Dieter e878354
-            goto frame_done;
Rex Dieter e878354
+            if (b)
Rex Dieter e878354
+                pa_memblock_unref(b);
Rex Dieter e878354
         }
Rex Dieter e878354
+
Rex Dieter e878354
+        goto frame_done;
Rex Dieter e878354
     }
Rex Dieter e878354
 
Rex Dieter e878354
     return 0;
Rex Dieter e878354
-- 
Rex Dieter e878354
2.4.3
Rex Dieter e878354