mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
modplug: memory handling cleanup
Don't leak the CSoundFile. Use define for comment buffer size and ensure it is 0 terminated.
This commit is contained in:
parent
4f1bcb55a4
commit
d84d98943a
1 changed files with 6 additions and 2 deletions
|
@ -646,7 +646,8 @@ gst_modplug_loop (GstModPlug * modplug)
|
||||||
GstEvent *newsegment;
|
GstEvent *newsegment;
|
||||||
GstTagList *tags;
|
GstTagList *tags;
|
||||||
gboolean ok;
|
gboolean ok;
|
||||||
gchar comment[16384];
|
#define COMMENT_SIZE 16384
|
||||||
|
gchar comment[COMMENT_SIZE];
|
||||||
|
|
||||||
ok = gst_modplug_load_song (modplug);
|
ok = gst_modplug_load_song (modplug);
|
||||||
gst_buffer_unref (modplug->buffer);
|
gst_buffer_unref (modplug->buffer);
|
||||||
|
@ -668,7 +669,9 @@ gst_modplug_loop (GstModPlug * modplug)
|
||||||
GST_TAG_BEATS_PER_MINUTE,
|
GST_TAG_BEATS_PER_MINUTE,
|
||||||
(gdouble) modplug->mSoundFile->GetMusicTempo (), NULL);
|
(gdouble) modplug->mSoundFile->GetMusicTempo (), NULL);
|
||||||
|
|
||||||
if (modplug->mSoundFile->GetSongComments ((gchar *) & comment, 16384, 32)) {
|
if (modplug->mSoundFile->GetSongComments ((gchar *) & comment,
|
||||||
|
COMMENT_SIZE, 32)) {
|
||||||
|
comment[COMMENT_SIZE - 1] = '\0';
|
||||||
gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
|
gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
|
||||||
GST_TAG_COMMENT, comment, NULL);
|
GST_TAG_COMMENT, comment, NULL);
|
||||||
}
|
}
|
||||||
|
@ -777,6 +780,7 @@ gst_modplug_change_state (GstElement * element, GstStateChange transition)
|
||||||
}
|
}
|
||||||
if (modplug->mSoundFile) {
|
if (modplug->mSoundFile) {
|
||||||
modplug->mSoundFile->Destroy ();
|
modplug->mSoundFile->Destroy ();
|
||||||
|
delete modplug->mSoundFile;
|
||||||
modplug->mSoundFile = NULL;
|
modplug->mSoundFile = NULL;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue