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

Reply via email to