Modified: trunk/Source/WebCore/ChangeLog (147489 => 147490)
--- trunk/Source/WebCore/ChangeLog 2013-04-02 20:00:25 UTC (rev 147489)
+++ trunk/Source/WebCore/ChangeLog 2013-04-02 20:04:00 UTC (rev 147490)
@@ -1,3 +1,19 @@
+2013-04-02 Sudarsana Nagineni <[email protected]>
+
+ [GStreamer] Memory leaks in MediaPlayerPrivateGStreamer
+ https://bugs.webkit.org/show_bug.cgi?id=113762
+
+ Reviewed by Philippe Normand.
+
+ Don't leak strings returned by gst_element_get_name() and
+ gst_missing_plugin_message_get_installer_detail().
+
+ No new tests. No change in behavior.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
+ (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
+
2013-04-02 Min Qin <[email protected]>
Fix css style for CC button on android
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (147489 => 147490)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2013-04-02 20:00:25 UTC (rev 147489)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2013-04-02 20:04:00 UTC (rev 147490)
@@ -148,7 +148,8 @@
GstStructure* structure = gst_structure_new("stream-properties", "media.role", G_TYPE_STRING, role, NULL);
g_object_set(object, "stream-properties", structure, NULL);
gst_structure_free(structure);
- LOG_MEDIA_MESSAGE("Set media.role as %s at %s", role, gst_element_get_name(GST_ELEMENT(object)));
+ GOwnPtr<gchar> elementName(gst_element_get_name(GST_ELEMENT(object)));
+ LOG_MEDIA_MESSAGE("Set media.role as %s at %s", role, elementName.get());
}
PassOwnPtr<MediaPlayerPrivateInterface> MediaPlayerPrivateGStreamer::create(MediaPlayer* player)
@@ -769,7 +770,8 @@
gst_message_parse_request_state(message, &requestedState);
gst_element_get_state(m_playBin.get(), ¤tState, NULL, 250);
if (requestedState < currentState) {
- LOG_MEDIA_MESSAGE("Element %s requested state change to %s", gst_element_get_name(GST_MESSAGE_SRC(message)),
+ GOwnPtr<gchar> elementName(gst_element_get_name(GST_ELEMENT(message)));
+ LOG_MEDIA_MESSAGE("Element %s requested state change to %s", elementName.get(),
gst_element_state_get_name(requestedState));
m_requestedState = requestedState;
changePipelineState(requestedState);
@@ -777,9 +779,10 @@
break;
case GST_MESSAGE_ELEMENT:
if (gst_is_missing_plugin_message(message)) {
- char* detail = gst_missing_plugin_message_get_installer_detail(message);
+ gchar* detail = gst_missing_plugin_message_get_installer_detail(message);
GstInstallPluginsReturn result = gst_install_plugins_async(&detail, 0, mediaPlayerPrivatePluginInstallerResultFunction, this);
m_missingPlugins = result == GST_INSTALL_PLUGINS_STARTED_OK;
+ g_free(detail);
}
break;
default: