diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-05-01 17:05:49 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-05-01 17:05:49 +0200 |
commit | 3c4bf5f4e3f296b4f147602817b1aa17b419682e (patch) | |
tree | 7589d9c38955c1b3f400c58ded4f06b5984a543e | |
parent | 3f74ddbae3437cbd81543a588a0dfa7b27145903 (diff) |
Handle NULL GstIterator* correctly
-rw-r--r-- | gstreamer-sharp/Element.custom | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gstreamer-sharp/Element.custom b/gstreamer-sharp/Element.custom index 762b92a..a7d18c9 100644 --- a/gstreamer-sharp/Element.custom +++ b/gstreamer-sharp/Element.custom @@ -54,6 +54,9 @@ private class PadEnumerable : IEnumerable { IntPtr raw_ret; bool retry = false; + if (iterator == IntPtr.Zero) + return false; + do { int ret = gst_iterator_next (iterator, out raw_ret); switch (ret) { @@ -82,7 +85,8 @@ private class PadEnumerable : IEnumerable { public void Reset () { seen.Clear (); - gst_iterator_resync (iterator); + if (iterator != IntPtr.Zero) + gst_iterator_resync (iterator); } public PadEnumerator (IntPtr iterator) { @@ -103,7 +107,8 @@ private class PadEnumerable : IEnumerable { } ~PadEnumerable () { - gst_iterator_free (iterator); + if (iterator != IntPtr.Zero) + gst_iterator_free (iterator); } } |