Title: [147911] trunk/Source/WebCore
Revision
147911
Author
[email protected]
Date
2013-04-08 06:11:06 -0700 (Mon, 08 Apr 2013)

Log Message

[EFL] REGRESSION(r147743): Use the correct `operator new' override in RenderThemeEfl.
https://bugs.webkit.org/show_bug.cgi?id=114166

Reviewed by Alexis Menard.

r147743 disabled GLOBAL_FAST_MALLOC_NEW on the EFL port, but this has
caused some pixel tests in WK1 to crash.

The problem stems from RenderThemeEfl::applyEdjeRTLState() directly
calling `operator new(size_t)' for some allocations.
RefCounted<RenderTheme>, on its turn, has a WTF_MAKE_FAST_ALLOCATED
call which adds some `operator new' overrides to the class. Our direct
calls in applyEdjeRTLState() made the scope resolution rules choose the
WTF_MAKE_FAST_ALLOCATED version (which uses FastMalloc's allocator),
while WTF::deleteOwnedPtr() calls the global `operator delete' (which
uses the system's free() implementation).

* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::applyEdjeRTLState): Explicitly choose the
global `operator new' when calling it.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (147910 => 147911)


--- trunk/Source/WebCore/ChangeLog	2013-04-08 12:57:40 UTC (rev 147910)
+++ trunk/Source/WebCore/ChangeLog	2013-04-08 13:11:06 UTC (rev 147911)
@@ -1,3 +1,26 @@
+2013-04-08  Raphael Kubo da Costa  <[email protected]>
+
+        [EFL] REGRESSION(r147743): Use the correct `operator new' override in RenderThemeEfl.
+        https://bugs.webkit.org/show_bug.cgi?id=114166
+
+        Reviewed by Alexis Menard.
+
+        r147743 disabled GLOBAL_FAST_MALLOC_NEW on the EFL port, but this has
+        caused some pixel tests in WK1 to crash.
+
+        The problem stems from RenderThemeEfl::applyEdjeRTLState() directly
+        calling `operator new(size_t)' for some allocations.
+        RefCounted<RenderTheme>, on its turn, has a WTF_MAKE_FAST_ALLOCATED
+        call which adds some `operator new' overrides to the class. Our direct
+        calls in applyEdjeRTLState() made the scope resolution rules choose the
+        WTF_MAKE_FAST_ALLOCATED version (which uses FastMalloc's allocator),
+        while WTF::deleteOwnedPtr() calls the global `operator delete' (which
+        uses the system's free() implementation).
+
+        * platform/efl/RenderThemeEfl.cpp:
+        (WebCore::RenderThemeEfl::applyEdjeRTLState): Explicitly choose the
+        global `operator new' when calling it.
+
 2013-04-07  Benjamin Poulain  <[email protected]>
 
         Remove the android code from WebCore

Modified: trunk/Source/WebCore/platform/efl/RenderThemeEfl.cpp (147910 => 147911)


--- trunk/Source/WebCore/platform/efl/RenderThemeEfl.cpp	2013-04-08 12:57:40 UTC (rev 147910)
+++ trunk/Source/WebCore/platform/efl/RenderThemeEfl.cpp	2013-04-08 13:11:06 UTC (rev 147911)
@@ -330,7 +330,7 @@
         HTMLInputElement* input = renderSlider->node()->toInputElement();
         double valueRange = input->maximum() - input->minimum();
 
-        OwnPtr<Edje_Message_Float_Set> msg = adoptPtr(static_cast<Edje_Message_Float_Set*>(operator new (sizeof(Edje_Message_Float_Set) + sizeof(double))));
+        OwnPtr<Edje_Message_Float_Set> msg = adoptPtr(static_cast<Edje_Message_Float_Set*>(::operator new (sizeof(Edje_Message_Float_Set) + sizeof(double))));
         msg->count = 2;
 
         // The first parameter of the message decides if the progress bar
@@ -351,7 +351,7 @@
         int max = rect.width();
         double value = renderProgress->position();
 
-        OwnPtr<Edje_Message_Float_Set> msg = adoptPtr(static_cast<Edje_Message_Float_Set*>(operator new (sizeof(Edje_Message_Float_Set) + sizeof(double))));
+        OwnPtr<Edje_Message_Float_Set> msg = adoptPtr(static_cast<Edje_Message_Float_Set*>(::operator new (sizeof(Edje_Message_Float_Set) + sizeof(double))));
         msg->count = 2;
 
         if (object->style()->direction() == RTL)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to