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.
This commit is contained in:
Tim-Philipp Müller 2006-03-27 14:09:18 +00:00
parent 6de7310b71
commit ab8540c17d
2 changed files with 9 additions and 2 deletions

View file

@ -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> 2006-03-27 Wim Taymans <wim@fluendo.com>
* ext/speex/gstspeexenc.c: (gst_speexenc_class_init), * ext/speex/gstspeexenc.c: (gst_speexenc_class_init),

View file

@ -299,11 +299,10 @@ gst_gdk_pixbuf_flush (GstGdkPixbuf * filter)
filter->image_size, GST_PAD_CAPS (filter->srcpad), &outbuf); filter->image_size, GST_PAD_CAPS (filter->srcpad), &outbuf);
if (ret != GST_FLOW_OK) { 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; return GST_FLOW_ERROR;
} }
gst_caps_unref (caps);
caps = gst_pad_get_negotiated_caps (filter->srcpad); caps = gst_pad_get_negotiated_caps (filter->srcpad);
GST_DEBUG ("Caps negotiated %s", gst_caps_to_string (caps)); GST_DEBUG ("Caps negotiated %s", gst_caps_to_string (caps));
gst_caps_unref (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); gdk_pixbuf_loader_close (pixbuf->pixbuf_loader, NULL);
res = gst_gdk_pixbuf_flush (pixbuf); res = gst_gdk_pixbuf_flush (pixbuf);
g_object_unref (G_OBJECT (pixbuf->pixbuf_loader)); g_object_unref (G_OBJECT (pixbuf->pixbuf_loader));
pixbuf->pixbuf_loader = NULL;
break; break;
case GST_EVENT_NEWSEGMENT: case GST_EVENT_NEWSEGMENT:
case GST_EVENT_FLUSH_STOP: case GST_EVENT_FLUSH_STOP: