From a1ae8a3a3e40e336c769b16483b343b65893fc88 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 26 Aug 2009 16:51:32 +0200 Subject: [PATCH] iterator: Allow to use NULL as object for the single iterator --- gst/gstiterator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gst/gstiterator.c b/gst/gstiterator.c index e8bd745..8b03a95 100644 --- a/gst/gstiterator.c +++ b/gst/gstiterator.c @@ -674,7 +674,7 @@ static GstIteratorResult gst_single_object_iterator_iterator_next (GstSingleObjectIterator * it, gpointer * result) { - if (it->visited) { + if (it->visited || !it->object) { *result = NULL; return GST_ITERATOR_DONE; } @@ -692,7 +692,8 @@ gst_single_object_iterator_resync (GstSingleObjectIterator * it) static void gst_single_object_iterator_free (GstSingleObjectIterator * it) { - it->free (it->object); + if (it->object) + it->free (it->object); g_free (it); } @@ -717,7 +718,6 @@ gst_iterator_new_single (GType type, gpointer object, GstCopyFunction copy, { GstSingleObjectIterator *result; - g_return_val_if_fail (object != NULL, NULL); g_return_val_if_fail (copy != NULL, NULL); g_return_val_if_fail (free != NULL, NULL); @@ -728,7 +728,7 @@ gst_iterator_new_single (GType type, gpointer object, GstCopyFunction copy, (GstIteratorResyncFunction) gst_single_object_iterator_resync, (GstIteratorFreeFunction) gst_single_object_iterator_free); - result->object = copy (object); + result->object = (object) ? copy (object) : NULL; result->copy = copy; result->free = free; result->visited = FALSE; -- 2.7.4