No comments on this one.

Reviewed-by: David Henningsson <[email protected]>

On 2016-02-12 01:15, Ahmed S. Darwish wrote:
Signed-off-by: Ahmed S. Darwish <[email protected]>
---
  src/pulsecore/memblock.c  | 24 ++++--------------------
  src/pulsecore/memblock.h  |  5 +++--
  src/pulsecore/pstream.c   |  4 ++++
  src/tests/memblock-test.c |  9 +++++----
  4 files changed, 16 insertions(+), 26 deletions(-)

diff --git a/src/pulsecore/memblock.c b/src/pulsecore/memblock.c
index 959453e..af27ba5 100644
--- a/src/pulsecore/memblock.c
+++ b/src/pulsecore/memblock.c
@@ -1116,8 +1116,8 @@ finish:
  }

  /* Self-locked */
-static pa_memblock* NEW_API_pa_memimport_get(pa_memimport *i, pa_mem_type_t 
type, uint32_t block_id, uint32_t shm_id,
-                                             size_t offset, size_t size, bool 
writable) {
+pa_memblock* pa_memimport_get(pa_memimport *i, pa_mem_type_t type, uint32_t 
block_id, uint32_t shm_id,
+                              size_t offset, size_t size, bool writable) {
      pa_memblock *b = NULL;
      pa_memimport_segment *seg;

@@ -1177,11 +1177,6 @@ finish:
      return b;
  }

-pa_memblock* pa_memimport_get(pa_memimport *i, uint32_t block_id, uint32_t 
shm_id,
-                              size_t offset, size_t size, bool writable) {
-    return NEW_API_pa_memimport_get(i, PA_MEM_TYPE_SHARED_POSIX, block_id, 
shm_id, offset, size, writable);
-}
-
  int pa_memimport_process_revoke(pa_memimport *i, uint32_t id) {
      pa_memblock *b;
      int ret = 0;
@@ -1338,8 +1333,8 @@ static pa_memblock *memblock_shared_copy(pa_mempool *p, 
pa_memblock *b) {
  }

  /* Self-locked */
-static int NEW_API_pa_memexport_put(pa_memexport *e, pa_memblock *b, 
pa_mem_type_t *type, uint32_t *block_id,
-                                    uint32_t *shm_id, size_t *offset, size_t * 
size) {
+int pa_memexport_put(pa_memexport *e, pa_memblock *b, pa_mem_type_t *type, 
uint32_t *block_id,
+                     uint32_t *shm_id, size_t *offset, size_t * size) {
      pa_shm  *memory;
      struct memexport_slot *slot;
      void *data;
@@ -1402,14 +1397,3 @@ static int NEW_API_pa_memexport_put(pa_memexport *e, 
pa_memblock *b, pa_mem_type

      return 0;
  }
-
-int pa_memexport_put(pa_memexport *e, pa_memblock *b, uint32_t *block_id, 
uint32_t *shm_id,
-                     size_t *offset, size_t *size) {
-    pa_mem_type_t type;
-    int ret;
-
-    if (!(ret = NEW_API_pa_memexport_put(e, b, &type, block_id, shm_id, 
offset, size)))
-        pa_assert(type == PA_MEM_TYPE_SHARED_POSIX);
-
-    return ret;
-}
diff --git a/src/pulsecore/memblock.h b/src/pulsecore/memblock.h
index 776b017..059538f 100644
--- a/src/pulsecore/memblock.h
+++ b/src/pulsecore/memblock.h
@@ -140,14 +140,15 @@ pa_memimport* pa_memimport_new(pa_mempool *p, 
pa_memimport_release_cb_t cb, void
  void pa_memimport_free(pa_memimport *i);
  int pa_memimport_add_permanent_shmid_to_memfd_mapping(pa_memimport *i, 
uint32_t shm_id, int memfd_fd,
                                                        bool writable);
-pa_memblock* pa_memimport_get(pa_memimport *i, uint32_t block_id, uint32_t 
shm_id,
+pa_memblock* pa_memimport_get(pa_memimport *i, pa_mem_type_t type, uint32_t 
block_id, uint32_t shm_id,
                                size_t offset, size_t size, bool writable);
  int pa_memimport_process_revoke(pa_memimport *i, uint32_t block_id);

  /* For sending blocks to other nodes */
  pa_memexport* pa_memexport_new(pa_mempool *p, pa_memexport_revoke_cb_t cb, 
void *userdata);
  void pa_memexport_free(pa_memexport *e);
-int pa_memexport_put(pa_memexport *e, pa_memblock *b, uint32_t *block_id, 
uint32_t *shm_id, size_t *offset, size_t *size);
+int pa_memexport_put(pa_memexport *e, pa_memblock *b, pa_mem_type_t *type, 
uint32_t *block_id,
+                     uint32_t *shm_id, size_t *offset, size_t * size);
  int pa_memexport_process_release(pa_memexport *e, uint32_t id);

  #endif
diff --git a/src/pulsecore/pstream.c b/src/pulsecore/pstream.c
index 98a8382..ef2bbf9 100644
--- a/src/pulsecore/pstream.c
+++ b/src/pulsecore/pstream.c
@@ -536,6 +536,7 @@ static void prepare_next_write_item(pa_pstream *p) {
          flags = (uint32_t) (p->write.current->seek_mode & PA_FLAG_SEEKMASK);

          if (p->use_shm) {
+            pa_mem_type_t type;
              uint32_t block_id, shm_id;
              size_t offset, length;
              uint32_t *shm_info = (uint32_t *) 
&p->write.minibuf[PA_PSTREAM_DESCRIPTOR_SIZE];
@@ -550,10 +551,12 @@ static void prepare_next_write_item(pa_pstream *p) {

              if (pa_memexport_put(current_export,
                                   p->write.current->chunk.memblock,
+                                 &type,
                                   &block_id,
                                   &shm_id,
                                   &offset,
                                   &length) >= 0) {
+                pa_assert(type == PA_MEM_TYPE_SHARED_POSIX);

                  flags |= PA_FLAG_SHMDATA;
                  if (pa_mempool_is_remote_writable(current_pool))
@@ -890,6 +893,7 @@ static int do_read(pa_pstream *p, struct pstream_read *re) {
              pa_assert(p->import);

              if (!(b = pa_memimport_get(p->import,
+                                       PA_MEM_TYPE_SHARED_POSIX,
                                         
ntohl(re->shm_info[PA_PSTREAM_SHM_BLOCKID]),
                                         
ntohl(re->shm_info[PA_PSTREAM_SHM_SHMID]),
                                         
ntohl(re->shm_info[PA_PSTREAM_SHM_INDEX]),
diff --git a/src/tests/memblock-test.c b/src/tests/memblock-test.c
index 58eae7b..5cd795c 100644
--- a/src/tests/memblock-test.c
+++ b/src/tests/memblock-test.c
@@ -74,6 +74,7 @@ START_TEST (memblock_test) {
      pa_memblock *mb_a, *mb_b, *mb_c;
      int r, i;
      pa_memblock* blocks[5];
+    pa_mem_type_t mem_type;
      uint32_t id, shm_id;
      size_t offset, size;
      char *x;
@@ -122,22 +123,22 @@ START_TEST (memblock_test) {
          import_c = pa_memimport_new(pool_c, release_cb, (void*) "C");
          fail_unless(import_b != NULL);

-        r = pa_memexport_put(export_a, mb_a, &id, &shm_id, &offset, &size);
+        r = pa_memexport_put(export_a, mb_a, &mem_type, &id, &shm_id, &offset, 
&size);
          fail_unless(r >= 0);
          fail_unless(shm_id == id_a);

          pa_log("A: Memory block exported as %u", id);

-        mb_b = pa_memimport_get(import_b, id, shm_id, offset, size, false);
+        mb_b = pa_memimport_get(import_b, PA_MEM_TYPE_SHARED_POSIX, id, 
shm_id, offset, size, false);
          fail_unless(mb_b != NULL);
-        r = pa_memexport_put(export_b, mb_b, &id, &shm_id, &offset, &size);
+        r = pa_memexport_put(export_b, mb_b, &mem_type, &id, &shm_id, &offset, 
&size);
          fail_unless(r >= 0);
          fail_unless(shm_id == id_a || shm_id == id_b);
          pa_memblock_unref(mb_b);

          pa_log("B: Memory block exported as %u", id);

-        mb_c = pa_memimport_get(import_c, id, shm_id, offset, size, false);
+        mb_c = pa_memimport_get(import_c, PA_MEM_TYPE_SHARED_POSIX, id, 
shm_id, offset, size, false);
          fail_unless(mb_c != NULL);
          x = pa_memblock_acquire(mb_c);
          pa_log_debug("1 data=%s", x);

Regards,


--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to