adapter: ensure automagic _unmap in some more cases
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Wed, 11 Jan 2012 09:59:53 +0000 (10:59 +0100)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Fri, 13 Jan 2012 13:21:27 +0000 (14:21 +0100)
libs/gst/base/gstadapter.c

index 2f14541..b932f3a 100644 (file)
@@ -422,6 +422,10 @@ gst_adapter_map (GstAdapter * adapter, gsize size)
   g_return_val_if_fail (GST_IS_ADAPTER (adapter), NULL);
   g_return_val_if_fail (size > 0, NULL);
 
+  if (adapter->priv->cdata) {
+    gst_adapter_unmap (adapter);
+  }
+
   /* we don't have enough data, return NULL. This is unlikely
    * as one usually does an _available() first instead of peeking a
    * random size. */
@@ -544,6 +548,10 @@ gst_adapter_flush_unchecked (GstAdapter * adapter, gsize flush)
 
   GST_LOG_OBJECT (adapter, "flushing %" G_GSIZE_FORMAT " bytes", flush);
 
+  if (adapter->priv->cdata) {
+    gst_adapter_unmap (adapter);
+  }
+
   priv = adapter->priv;
 
   /* clear state */