summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-05-01 17:05:49 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-05-01 17:05:49 +0200
commit3c4bf5f4e3f296b4f147602817b1aa17b419682e (patch)
tree7589d9c38955c1b3f400c58ded4f06b5984a543e
parent3f74ddbae3437cbd81543a588a0dfa7b27145903 (diff)
Handle NULL GstIterator* correctly
-rw-r--r--gstreamer-sharp/Element.custom9
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);
}
}