]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/memtrap.c
dbus: first restart timer, then dispatch it
[pulseaudio] / src / pulsecore / memtrap.c
index c647e50710a242e1fd48b3b3b18e7d3ec95b09bd..4fc1821050482eeff2ea73c435d69470717a2649 100644 (file)
@@ -107,7 +107,10 @@ static void memtrap_link(pa_memtrap *m, unsigned j) {
     pa_assert(m);
 
     m->prev[j] = NULL;
-    m->next[j] = memtraps[j];
+
+    if ((m->next[j] = memtraps[j]))
+        m->next[j]->prev[j] = m;
+
     memtraps[j] = m;
 }
 
@@ -200,13 +203,13 @@ pa_memtrap *pa_memtrap_update(pa_memtrap *m, const void *start, size_t size) {
         goto unlock;
 
     memtrap_unlink(m, j);
-    j = pa_aupdate_write_swap(aupdate);
+    pa_aupdate_write_swap(aupdate);
 
     m->start = (void*) start;
     m->size = size;
     pa_atomic_store(&m->bad, 0);
 
-    j = pa_aupdate_write_swap(aupdate);
+    pa_assert_se(pa_aupdate_write_swap(aupdate) == j);
     memtrap_link(m, j);
 
 unlock: