Title: [123727] trunk/Source/WebKit2
- Revision
- 123727
- Author
- [email protected]
- Date
- 2012-07-26 04:32:27 -0700 (Thu, 26 Jul 2012)
Log Message
[EFL] [WK2] Memory leak in ewk_view_resource_load_client.cpp
https://bugs.webkit.org/show_bug.cgi?id=92099
Patch by Sudarsana Nagineni <[email protected]> on 2012-07-26
Reviewed by Kentaro Hara.
Fix a memory leak by clearing the loadingResources HashMap on exit.
* UIProcess/API/efl/ewk_view.cpp:
(_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
(_ewk_view_priv_loading_resources_clear):
(ewk_view_load_provisional_started):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (123726 => 123727)
--- trunk/Source/WebKit2/ChangeLog 2012-07-26 10:42:27 UTC (rev 123726)
+++ trunk/Source/WebKit2/ChangeLog 2012-07-26 11:32:27 UTC (rev 123727)
@@ -1,3 +1,17 @@
+2012-07-26 Sudarsana Nagineni <[email protected]>
+
+ [EFL] [WK2] Memory leak in ewk_view_resource_load_client.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92099
+
+ Reviewed by Kentaro Hara.
+
+ Fix a memory leak by clearing the loadingResources HashMap on exit.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
+ (_ewk_view_priv_loading_resources_clear):
+ (ewk_view_load_provisional_started):
+
2012-07-26 Gyuyoung Kim <[email protected]>
[DRT] LTC:: pageNumberForElementById() could be moved to Internals
Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp (123726 => 123727)
--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp 2012-07-26 10:42:27 UTC (rev 123726)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp 2012-07-26 11:32:27 UTC (rev 123727)
@@ -51,6 +51,7 @@
static const int defaultCursorSize = 16;
typedef HashMap<uint64_t, Ewk_Web_Resource*> LoadingResourcesMap;
+static void _ewk_view_priv_loading_resources_clear(LoadingResourcesMap& loadingResourcesMap);
struct _Ewk_View_Private_Data {
OwnPtr<PageClientImpl> pageClient;
@@ -84,6 +85,7 @@
eina_stringshare_del(title);
eina_stringshare_del(theme);
eina_stringshare_del(customEncoding);
+ _ewk_view_priv_loading_resources_clear(loadingResourcesMap);
if (cursorObject)
evas_object_del(cursorObject);
@@ -311,6 +313,17 @@
return priv;
}
+static void _ewk_view_priv_loading_resources_clear(LoadingResourcesMap& loadingResourcesMap)
+{
+ // Clear the loadingResources HashMap.
+ LoadingResourcesMap::iterator it = loadingResourcesMap.begin();
+ LoadingResourcesMap::iterator end = loadingResourcesMap.end();
+ for ( ; it != end; ++it)
+ ewk_web_resource_unref(it->second);
+
+ loadingResourcesMap.clear();
+}
+
static void _ewk_view_priv_del(Ewk_View_Private_Data* priv)
{
delete priv;
@@ -998,11 +1011,7 @@
// The main frame started provisional load, we should clear
// the loadingResources HashMap to start clean.
- LoadingResourcesMap::iterator it = priv->loadingResourcesMap.begin();
- LoadingResourcesMap::iterator end = priv->loadingResourcesMap.end();
- for ( ; it != end; ++it)
- ewk_web_resource_unref(it->second);
- priv->loadingResourcesMap.clear();
+ _ewk_view_priv_loading_resources_clear(priv->loadingResourcesMap);
ewk_view_uri_update(ewkView);
evas_object_smart_callback_call(ewkView, "load,provisional,started", 0);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes