Diff between 7cf7f976758838c806c52352165ab3f57c89150c and 05da3d5cdfc385b975831dcf637eee29039f88db

Changed Files

File Additions Deletions Status
src/shared/queue.c +8 -0 modified

Full Patch

diff --git a/src/shared/queue.c b/src/shared/queue.c
index 20f51b8..8bbb7df 100644
--- a/src/shared/queue.c
+++ b/src/shared/queue.c
@@ -224,6 +224,11 @@ void queue_foreach(struct queue *queue, queue_foreach_func_t function,
 	queue_unref(queue);
 }
 
+static bool direct_match(const void *a, const void *b)
+{
+	return a == b;
+}
+
 void *queue_find(struct queue *queue, queue_match_func_t function,
 							const void *match_data)
 {
@@ -232,6 +237,9 @@ void *queue_find(struct queue *queue, queue_match_func_t function,
 	if (!queue || !function)
 		return NULL;
 
+	if (!function)
+		function = direct_match;
+
 	for (entry = queue->head; entry; entry = entry->next)
 		if (function(entry->data, match_data))
 			return entry->data;