Title: [126448] trunk/Source/WebKit2
Revision
126448
Author
[email protected]
Date
2012-08-23 11:02:34 -0700 (Thu, 23 Aug 2012)

Log Message

[EFL][WK2] Free ewk context data on program exit.
https://bugs.webkit.org/show_bug.cgi?id=94808

Patch by Christophe Dumez <[email protected]> on 2012-08-23
Reviewed by Kenneth Rohde Christiansen.

Make sure the default Ewk_Context gets freed
on program exit.

The patch also fixes leaking of WKContextRef
inside Ewk_Context which should have been
adopted.

* UIProcess/API/efl/ewk_context.cpp:
(_Ewk_Context::_Ewk_Context):
(ewk_context_default_get):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (126447 => 126448)


--- trunk/Source/WebKit2/ChangeLog	2012-08-23 17:55:05 UTC (rev 126447)
+++ trunk/Source/WebKit2/ChangeLog	2012-08-23 18:02:34 UTC (rev 126448)
@@ -1,3 +1,21 @@
+2012-08-23  Christophe Dumez  <[email protected]>
+
+        [EFL][WK2] Free ewk context data on program exit.
+        https://bugs.webkit.org/show_bug.cgi?id=94808
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Make sure the default Ewk_Context gets freed
+        on program exit.
+
+        The patch also fixes leaking of WKContextRef
+        inside Ewk_Context which should have been
+        adopted.
+
+        * UIProcess/API/efl/ewk_context.cpp:
+        (_Ewk_Context::_Ewk_Context):
+        (ewk_context_default_get):
+
 2012-08-23  Adrienne Walker  <[email protected]>
 
         Convert ScrollableArea ASSERT_NOT_REACHED virtuals

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp (126447 => 126448)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp	2012-08-23 17:55:05 UTC (rev 126447)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp	2012-08-23 18:02:34 UTC (rev 126448)
@@ -70,18 +70,18 @@
     WKRetainPtr<WKSoupRequestManagerRef> requestManager;
     URLSchemeHandlerMap urlSchemeHandlers;
 
-    _Ewk_Context(WKContextRef contextRef)
+    _Ewk_Context(WKRetainPtr<WKContextRef> contextRef)
         : context(contextRef)
         , cookieManager(0)
-        , requestManager(WKContextGetSoupRequestManager(contextRef))
+        , requestManager(WKContextGetSoupRequestManager(contextRef.get()))
     {
 #if ENABLE(BATTERY_STATUS)
-        WKBatteryManagerRef wkBatteryManager = WKContextGetBatteryManager(contextRef);
+        WKBatteryManagerRef wkBatteryManager = WKContextGetBatteryManager(contextRef.get());
         batteryProvider = BatteryProvider::create(wkBatteryManager);
 #endif
 
 #if ENABLE(VIBRATION)
-        WKVibrationRef wkVibrationRef = WKContextGetVibration(contextRef);
+        WKVibrationRef wkVibrationRef = WKContextGetVibration(contextRef.get());
         vibrationProvider = VibrationProvider::create(wkVibrationRef);
 #endif
 
@@ -198,16 +198,11 @@
     handler.callback(schemeRequest, handler.userData);
 }
 
-static inline Ewk_Context* createDefaultEwkContext()
-{
-    return new Ewk_Context(WKContextCreate());
-}
-
 Ewk_Context* ewk_context_default_get()
 {
-    static Ewk_Context* defaultContext = createDefaultEwkContext();
+    static Ewk_Context defaultContext(adoptWK(WKContextCreate()));
 
-    return defaultContext;
+    return &defaultContext;
 }
 
 Eina_Bool ewk_context_uri_scheme_register(Ewk_Context* ewkContext, const char* scheme, Ewk_Url_Scheme_Request_Cb callback, void* userData)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to