diff options
| author | Tim-Philipp Müller <tim@centricular.net> | 2006-03-27 14:09:18 +0000 | 
|---|---|---|
| committer | Tim-Philipp Müller <tim@centricular.net> | 2006-03-27 14:09:18 +0000 | 
| commit | ab8540c17d9f2161ccf6f517e46a6f104b64cb99 (patch) | |
| tree | bf609286b234fb239a8156a2594570cfe39261e6 | |
| parent | 6de7310b7140b925ff3fa923443d3654588604b8 (diff) | |
ext/gdk_pixbuf/gstgdkpixbuf.c: Fix two crashers: don't unref the same caps twice, and set pixbuf loader to NULL after...
Original commit message from CVS:
* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_flush),
(gst_gdk_pixbuf_event):
Fix two crashers: don't unref the same caps twice, and
set pixbuf loader to NULL after freeing it.
| -rw-r--r-- | ChangeLog | 7 | ||||
| -rw-r--r-- | ext/gdk_pixbuf/gstgdkpixbuf.c | 4 | 
2 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,10 @@ +2006-03-27  Tim-Philipp Müller  <tim at centricular dot net> + +	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_flush), +	(gst_gdk_pixbuf_event): +	  Fix two crashers: don't unref the same caps twice, and +	  set pixbuf loader to NULL after freeing it. +  2006-03-27  Wim Taymans  <wim@fluendo.com>  	* ext/speex/gstspeexenc.c: (gst_speexenc_class_init), diff --git a/ext/gdk_pixbuf/gstgdkpixbuf.c b/ext/gdk_pixbuf/gstgdkpixbuf.c index 4f65677a..1729ef3e 100644 --- a/ext/gdk_pixbuf/gstgdkpixbuf.c +++ b/ext/gdk_pixbuf/gstgdkpixbuf.c @@ -299,11 +299,10 @@ gst_gdk_pixbuf_flush (GstGdkPixbuf * filter)        filter->image_size, GST_PAD_CAPS (filter->srcpad), &outbuf);    if (ret != GST_FLOW_OK) { -    GST_DEBUG ("Failed to create outbuffer - %d", ret); +    GST_DEBUG ("Failed to create outbuffer - %s", gst_flow_get_name (ret));      return GST_FLOW_ERROR;    } -  gst_caps_unref (caps);    caps = gst_pad_get_negotiated_caps (filter->srcpad);    GST_DEBUG ("Caps negotiated %s", gst_caps_to_string (caps));    gst_caps_unref (caps); @@ -339,6 +338,7 @@ gst_gdk_pixbuf_event (GstPad * pad, GstEvent * event)        gdk_pixbuf_loader_close (pixbuf->pixbuf_loader, NULL);        res = gst_gdk_pixbuf_flush (pixbuf);        g_object_unref (G_OBJECT (pixbuf->pixbuf_loader)); +      pixbuf->pixbuf_loader = NULL;        break;      case GST_EVENT_NEWSEGMENT:      case GST_EVENT_FLUSH_STOP:  | 
