Title: [129866] trunk/Source/WebKit2
Revision
129866
Author
[email protected]
Date
2012-09-28 02:40:24 -0700 (Fri, 28 Sep 2012)

Log Message

[EFL][WK2] Clear provider on destructor of {Vibration,Battery,NetworkInfo}Provider.
https://bugs.webkit.org/show_bug.cgi?id=97528

Patch by Byungwoo Lee <[email protected]> on 2012-09-28
Reviewed by Kenneth Rohde Christiansen.

Constructor of {Vibration,Battery,NetworkInfo}Provider set provider
but the destructor of the classes doesn't clear provider.
This can make a problem about accessing dangling pointer.

For preventing this problem, clear provider on destructor.

* UIProcess/API/efl/BatteryProvider.cpp:
(BatteryProvider::~BatteryProvider):
* UIProcess/API/efl/NetworkInfoProvider.cpp:
(NetworkInfoProvider::~NetworkInfoProvider):
* UIProcess/API/efl/VibrationProvider.cpp:
(VibrationProvider::~VibrationProvider):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (129865 => 129866)


--- trunk/Source/WebKit2/ChangeLog	2012-09-28 09:26:28 UTC (rev 129865)
+++ trunk/Source/WebKit2/ChangeLog	2012-09-28 09:40:24 UTC (rev 129866)
@@ -1,3 +1,23 @@
+2012-09-28  Byungwoo Lee  <[email protected]>
+
+        [EFL][WK2] Clear provider on destructor of {Vibration,Battery,NetworkInfo}Provider.
+        https://bugs.webkit.org/show_bug.cgi?id=97528
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Constructor of {Vibration,Battery,NetworkInfo}Provider set provider
+        but the destructor of the classes doesn't clear provider.
+        This can make a problem about accessing dangling pointer.
+
+        For preventing this problem, clear provider on destructor.
+
+        * UIProcess/API/efl/BatteryProvider.cpp:
+        (BatteryProvider::~BatteryProvider):
+        * UIProcess/API/efl/NetworkInfoProvider.cpp:
+        (NetworkInfoProvider::~NetworkInfoProvider):
+        * UIProcess/API/efl/VibrationProvider.cpp:
+        (VibrationProvider::~VibrationProvider):
+
 2012-09-28  Christophe Dumez  <[email protected]>
 
         [EFL][WK2] NetworkInfo provider is not initialized in Ewk_Context

Modified: trunk/Source/WebKit2/UIProcess/API/efl/BatteryProvider.cpp (129865 => 129866)


--- trunk/Source/WebKit2/UIProcess/API/efl/BatteryProvider.cpp	2012-09-28 09:26:28 UTC (rev 129865)
+++ trunk/Source/WebKit2/UIProcess/API/efl/BatteryProvider.cpp	2012-09-28 09:40:24 UTC (rev 129866)
@@ -53,6 +53,7 @@
 BatteryProvider::~BatteryProvider()
 {
     m_provider.stopUpdating();
+    WKBatteryManagerSetProvider(m_wkBatteryManager.get(), 0);
 }
 
 PassRefPtr<BatteryProvider> BatteryProvider::create(WKBatteryManagerRef wkBatteryManager)

Modified: trunk/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.cpp (129865 => 129866)


--- trunk/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.cpp	2012-09-28 09:26:28 UTC (rev 129865)
+++ trunk/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.cpp	2012-09-28 09:40:24 UTC (rev 129866)
@@ -79,6 +79,7 @@
 
 NetworkInfoProvider::~NetworkInfoProvider()
 {
+    WKNetworkInfoManagerSetProvider(m_wkNetworkInfoManager.get(), 0);
 }
 
 double NetworkInfoProvider::bandwidth() const

Modified: trunk/Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp (129865 => 129866)


--- trunk/Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp	2012-09-28 09:26:28 UTC (rev 129865)
+++ trunk/Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp	2012-09-28 09:40:24 UTC (rev 129866)
@@ -86,6 +86,7 @@
 
 VibrationProvider::~VibrationProvider()
 {
+    WKVibrationSetProvider(m_wkVibrationRef.get(), 0);
 }
 
 void VibrationProvider::vibrate(uint64_t vibrationTime)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to