some modernizations
authorLennart Poettering <lennart@poettering.net>
Fri, 27 Jun 2008 17:15:32 +0000 (19:15 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 27 Jun 2008 17:15:32 +0000 (19:15 +0200)
src/pulsecore/queue.c
src/pulsecore/queue.h

index 72e5467..2c73a3d 100644 (file)
@@ -1,7 +1,7 @@
 /***
   This file is part of PulseAudio.
 
-  Copyright 2004-2006 Lennart Poettering
+  Copyright 2004-2008 Lennart Poettering
 
   PulseAudio is free software; you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as
@@ -52,13 +52,13 @@ pa_queue* pa_queue_new(void) {
     return q;
 }
 
-void pa_queue_free(pa_queue* q, void (*destroy)(void *p, void *userdata), void *userdata) {
+void pa_queue_free(pa_queue* q, pa_free2_cb_t free_func, void *userdata) {
     void *data;
     pa_assert(q);
 
     while ((data = pa_queue_pop(q)))
-        if (destroy)
-            destroy(data, userdata);
+        if (free_func)
+            free_func(data, userdata);
 
     pa_assert(!q->front);
     pa_assert(!q->back);
@@ -94,6 +94,7 @@ void pa_queue_push(pa_queue *q, void *p) {
 void* pa_queue_pop(pa_queue *q) {
     void *p;
     struct queue_entry *e;
+
     pa_assert(q);
 
     if (!(e = q->front))
index c55ac4d..f3cec9b 100644 (file)
@@ -1,10 +1,10 @@
-#ifndef fooqueuehfoo
-#define fooqueuehfoo
+#ifndef foopulsecorequeuehfoo
+#define foopulsecorequeuehfoo
 
 /***
   This file is part of PulseAudio.
 
-  Copyright 2004-2006 Lennart Poettering
+  Copyright 2004-2008 Lennart Poettering
 
   PulseAudio is free software; you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as
@@ -22,6 +22,8 @@
   USA.
 ***/
 
+#include <pulsecore/idxset.h>
+
 typedef struct pa_queue pa_queue;
 
 /* A simple implementation of the abstract data type queue. Stores
@@ -29,8 +31,9 @@ typedef struct pa_queue pa_queue;
 
 pa_queue* pa_queue_new(void);
 
-/* Free the queue and run the specified callback function for every remaining entry. The callback function may be NULL. */
-void pa_queue_free(pa_queue* q, void (*destroy)(void *p, void *userdata), void *userdata);
+/* Free the queue and run the specified callback function for every
+ * remaining entry. The callback function may be NULL. */
+void pa_queue_free(pa_queue* q, pa_free2_cb_t free_func, void *userdata);
 
 void pa_queue_push(pa_queue *q, void *p);
 void* pa_queue_pop(pa_queue *q);