diff options
author | Christophe Fergeau <teuf@gnome.org> | 2004-03-06 20:56:27 +0000 |
---|---|---|
committer | Christophe Fergeau <teuf@gnome.org> | 2004-03-06 20:56:27 +0000 |
commit | 89bbfdc3683c00f14cf7142cd19faadaf2ccc1c8 (patch) | |
tree | f15690de330dcca1c0a8626706d78de0c21d5ddc /ext/flac/gstflactag.c | |
parent | 905db051a9c0e5559a760990044e6a205dd2cfdf (diff) |
Fix several misuse of gst_buffer_merge (it doesn't take ownership of any buffer), should fix some leaks. I hope I did...
Original commit message from CVS:
2004-03-06 Christophe Fergeau <teuf@gnome.org>
* ext/faac/gstfaac.c: (gst_faac_chain):
* ext/flac/gstflactag.c: (gst_flac_tag_chain):
* ext/libpng/gstpngenc.c: (user_write_data):
* ext/mikmod/gstmikmod.c: (gst_mikmod_loop):
* gst/ac3parse/gstac3parse.c: (gst_ac3parse_chain):
* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_chain_subtitle):
* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice):
Fix several misuse of gst_buffer_merge (it doesn't take ownership
of any buffer), should fix some leaks. I hope I didn't unref buffers
that shouldn't be...
Diffstat (limited to 'ext/flac/gstflactag.c')
-rw-r--r-- | ext/flac/gstflactag.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/ext/flac/gstflactag.c b/ext/flac/gstflactag.c index f2d178d0..5d1c56c2 100644 --- a/ext/flac/gstflactag.c +++ b/ext/flac/gstflactag.c @@ -264,7 +264,11 @@ gst_flac_tag_chain (GstPad *pad, GstData *data) tag = GST_FLAC_TAG (gst_pad_get_parent (pad)); if (tag->buffer) { - tag->buffer = gst_buffer_merge (tag->buffer, buffer); + GstBuffer *merge; + merge = gst_buffer_merge (tag->buffer, buffer); + gst_buffer_unref (buffer); + gst_buffer_unref (tag->buffer); + tag->buffer = merge; } else { tag->buffer = buffer; } @@ -365,7 +369,11 @@ gst_flac_tag_chain (GstPad *pad, GstData *data) if (tag->vorbiscomment == NULL) { tag->vorbiscomment = sub; } else { - tag->vorbiscomment = gst_buffer_merge (tag->vorbiscomment, sub); + GstBuffer *merge; + merge = gst_buffer_merge (tag->vorbiscomment, sub); + gst_buffer_unref (tag->vorbiscomment); + gst_buffer_unref (sub); + tag->vorbiscomment = merge; } } |