Changeset 112906 in webkit


Ignore:
Timestamp:
Apr 2, 2012 10:56:58 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, rolling out r112318.
http://trac.webkit.org/changeset/112318
https://bugs.webkit.org/show_bug.cgi?id=82912

Possible OOM issues (Requested by aklein on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-04-02

  • bindings/scripts/CodeGeneratorV8.pm:

(GenerateConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateToV8Converters):
(GetDomMapFunction):

  • bindings/scripts/test/V8/V8Float64Array.cpp:

(WebCore::V8Float64Array::wrapSlow):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:

(WebCore::V8TestActiveDOMObject::wrapSlow):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:

(WebCore::V8TestCustomNamedGetter::wrapSlow):

  • bindings/scripts/test/V8/V8TestEventConstructor.cpp:

(WebCore::V8TestEventConstructor::wrapSlow):

  • bindings/scripts/test/V8/V8TestEventTarget.cpp:

(WebCore::V8TestEventTarget::wrapSlow):

  • bindings/scripts/test/V8/V8TestInterface.cpp:

(WebCore::V8TestInterface::wrapSlow):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:

(WebCore::V8TestMediaQueryListListener::wrapSlow):

  • bindings/scripts/test/V8/V8TestNamedConstructor.cpp:

(WebCore::V8TestNamedConstructor::wrapSlow):

  • bindings/scripts/test/V8/V8TestObj.cpp:

(WebCore::V8TestObj::wrapSlow):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:

(WebCore::V8TestSerializedScriptValueInterface::wrapSlow):

  • bindings/v8/V8DOMWrapper.cpp:

(WebCore::V8DOMWrapper::setJSWrapperForDOMNode):

  • bindings/v8/V8DOMWrapper.h:

(V8DOMWrapper):
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
(WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):

Location:
trunk/Source/WebCore
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r112901 r112906  
     12012-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r112318.
     4        http://trac.webkit.org/changeset/112318
     5        https://bugs.webkit.org/show_bug.cgi?id=82912
     6
     7        Possible OOM issues (Requested by aklein on #webkit).
     8
     9        * bindings/scripts/CodeGeneratorV8.pm:
     10        (GenerateConstructorCallback):
     11        (GenerateNamedConstructorCallback):
     12        (GenerateToV8Converters):
     13        (GetDomMapFunction):
     14        * bindings/scripts/test/V8/V8Float64Array.cpp:
     15        (WebCore::V8Float64Array::wrapSlow):
     16        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
     17        (WebCore::V8TestActiveDOMObject::wrapSlow):
     18        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
     19        (WebCore::V8TestCustomNamedGetter::wrapSlow):
     20        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
     21        (WebCore::V8TestEventConstructor::wrapSlow):
     22        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
     23        (WebCore::V8TestEventTarget::wrapSlow):
     24        * bindings/scripts/test/V8/V8TestInterface.cpp:
     25        (WebCore::V8TestInterface::wrapSlow):
     26        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
     27        (WebCore::V8TestMediaQueryListListener::wrapSlow):
     28        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
     29        (WebCore::V8TestNamedConstructor::wrapSlow):
     30        * bindings/scripts/test/V8/V8TestObj.cpp:
     31        (WebCore::V8TestObj::wrapSlow):
     32        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
     33        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
     34        * bindings/v8/V8DOMWrapper.cpp:
     35        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
     36        * bindings/v8/V8DOMWrapper.h:
     37        (V8DOMWrapper):
     38        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
     39        (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
     40
    1412012-04-02  Srikumar Bonda  <srikumar.b@gmail.com>
    242
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm

    r112811 r112906  
    17531753    }
    17541754
    1755     my $DOMObject = GetDomWrapperMapName($dataNode, $implClassName);
     1755    my $DOMObject = "DOMObject";
     1756    if (IsNodeSubType($dataNode)) {
     1757        $DOMObject = "DOMNode";
     1758    } elsif ($dataNode->extendedAttributes->{"ActiveDOMObject"}) {
     1759        $DOMObject = "ActiveDOMObject";
     1760    }
     1761
    17561762    push(@implContent, <<END);
    17571763
     
    19271933    }
    19281934
    1929     my $DOMObject = GetDomWrapperMapName($dataNode, $implClassName);
     1935    my $DOMObject = "DOMObject";
     1936    # A DOMObject that is an ActiveDOMObject and also a DOMNode should be treated as an DOMNode here.
     1937    # setJSWrapperForDOMNode() will look if node is active and choose correct map to add node to.
     1938    if (IsNodeSubType($dataNode)) {
     1939        $DOMObject = "DOMNode";
     1940    } elsif ($dataNode->extendedAttributes->{"ActiveDOMObject"}) {
     1941        $DOMObject = "ActiveDOMObject";
     1942    }
    19301943    push(@implContent, <<END);
    19311944
     
    30813094    my $nativeType = shift;
    30823095
    3083     my $domMapName = GetDomWrapperMapName($dataNode, $interfaceName);
     3096    my $domMapFunction = GetDomMapFunction($dataNode, $interfaceName);
    30843097    my $forceNewObjectInput = IsDOMNodeType($interfaceName) ? ", bool forceNewObject" : "";
    30853098    my $forceNewObjectCall = IsDOMNodeType($interfaceName) ? ", forceNewObject" : "";
     
    31703183    }
    31713184    push(@implContent, <<END);
    3172     V8DOMWrapper::setJSWrapperFor${domMapName}(impl, wrapperHandle);
     3185    ${domMapFunction}.set(impl.leakRef(), wrapperHandle);
    31733186    return wrapper;
    31743187}
     
    31773190
    31783191sub GetDomMapFunction
    3179 {
    3180     my $mapName = GetDomWrapperMapName(@_);
    3181     return "get${mapName}Map()";
    3182 }
    3183 
    3184 sub GetDomWrapperMapName
    31853192{
    31863193    my $dataNode = shift;
    31873194    my $type = shift;
    3188     return "DOMSVGElementInstance" if $type eq "SVGElementInstance";
    3189     return "ActiveDOMNode" if (IsNodeSubType($dataNode) && $dataNode->extendedAttributes->{"ActiveDOMObject"});
    3190     return "DOMNode" if (IsNodeSubType($dataNode));
    3191     return "ActiveDOMObject" if $dataNode->extendedAttributes->{"ActiveDOMObject"};
    3192     return "DOMObject";
     3195    return "getDOMSVGElementInstanceMap()" if $type eq "SVGElementInstance";
     3196    return "getActiveDOMNodeMap()" if (IsNodeSubType($dataNode) && $dataNode->extendedAttributes->{"ActiveDOMObject"});
     3197    return "getDOMNodeMap()" if (IsNodeSubType($dataNode));
     3198    return "getActiveDOMObjectMap()" if $dataNode->extendedAttributes->{"ActiveDOMObject"};
     3199    return "getDOMObjectMap()";
    31933200}
    31943201
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp

    r112318 r112906  
    133133    if (!hasDependentLifetime)
    134134        wrapperHandle.MarkIndependent();
    135     V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
     135    getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    136136    return wrapper;
    137137}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp

    r112318 r112906  
    189189    if (!hasDependentLifetime)
    190190        wrapperHandle.MarkIndependent();
    191     V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
     191    getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    192192    return wrapper;
    193193}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp

    r112318 r112906  
    123123    if (!hasDependentLifetime)
    124124        wrapperHandle.MarkIndependent();
    125     V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
     125    getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    126126    return wrapper;
    127127}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp

    r112318 r112906  
    158158    if (!hasDependentLifetime)
    159159        wrapperHandle.MarkIndependent();
    160     V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
     160    getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    161161    return wrapper;
    162162}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp

    r112318 r112906  
    186186    if (!hasDependentLifetime)
    187187        wrapperHandle.MarkIndependent();
    188     V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
     188    getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    189189    return wrapper;
    190190}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp

    r112318 r112906  
    318318    if (!hasDependentLifetime)
    319319        wrapperHandle.MarkIndependent();
    320     V8DOMWrapper::setJSWrapperForActiveDOMObject(impl, wrapperHandle);
     320    getActiveDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    321321    return wrapper;
    322322}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp

    r112318 r112906  
    123123    if (!hasDependentLifetime)
    124124        wrapperHandle.MarkIndependent();
    125     V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
     125    getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    126126    return wrapper;
    127127}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp

    r112318 r112906  
    167167    if (!hasDependentLifetime)
    168168        wrapperHandle.MarkIndependent();
    169     V8DOMWrapper::setJSWrapperForActiveDOMObject(impl, wrapperHandle);
     169    getActiveDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    170170    return wrapper;
    171171}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp

    r112653 r112906  
    21722172    if (!hasDependentLifetime)
    21732173        wrapperHandle.MarkIndependent();
    2174     V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
     2174    getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    21752175    return wrapper;
    21762176}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp

    r112318 r112906  
    289289    if (!hasDependentLifetime)
    290290        wrapperHandle.MarkIndependent();
    291     V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
     291    getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
    292292    return wrapper;
    293293}
  • trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp

    r112318 r112906  
    3737#include "EventTargetInterfaces.h"
    3838#include "FrameLoaderClient.h"
    39 #include "SVGElementInstance.h"
    4039#include "StylePropertySet.h"
    4140#include "V8AbstractEventListener.h"
     
    6867namespace WebCore {
    6968
    70 #if ENABLE(SVG)
    71 void V8DOMWrapper::setJSWrapperForDOMSVGElementInstance(PassRefPtr<SVGElementInstance> element, v8::Persistent<v8::Object> wrapper)
     69void V8DOMWrapper::setJSWrapperForDOMNode(PassRefPtr<Node> node, v8::Persistent<v8::Object> wrapper)
    7270{
    7371    ASSERT(maybeDOMWrapper(wrapper));
    74     getDOMSVGElementInstanceMap().set(element.leakRef(), wrapper);
    75 }
    76 #endif
     72    if (node->isActiveNode())
     73        getActiveDOMNodeMap().set(node.leakRef(), wrapper);
     74    else
     75        getDOMNodeMap().set(node.leakRef(), wrapper);
     76}
    7777
    7878v8::Local<v8::Function> V8DOMWrapper::getConstructor(WrapperTypeInfo* type, v8::Handle<v8::Value> objectPrototype)
  • trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h

    r112318 r112906  
    111111        template<typename T> static void setJSWrapperForActiveDOMObject(PassRefPtr<T>, v8::Persistent<v8::Object>);
    112112        static void setJSWrapperForDOMNode(PassRefPtr<Node>, v8::Persistent<v8::Object>);
    113         static void setJSWrapperForActiveDOMNode(PassRefPtr<Node>, v8::Persistent<v8::Object>);
    114 #if ENABLE(SVG)
    115         static void setJSWrapperForDOMSVGElementInstance(PassRefPtr<SVGElementInstance>, v8::Persistent<v8::Object>);
    116 #endif
    117113
    118114        static bool isValidDOMObject(v8::Handle<v8::Value>);
     
    155151
    156152    template<typename T>
    157     inline void V8DOMWrapper::setJSWrapperForDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)
     153    void V8DOMWrapper::setJSWrapperForDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)
    158154    {
    159155        ASSERT(maybeDOMWrapper(wrapper));
     
    163159
    164160    template<typename T>
    165     inline void V8DOMWrapper::setJSWrapperForActiveDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)
     161    void V8DOMWrapper::setJSWrapperForActiveDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)
    166162    {
    167163        ASSERT(maybeDOMWrapper(wrapper));
     
    169165        getActiveDOMObjectMap().set(object.leakRef(), wrapper);
    170166    }
    171 
    172     inline void V8DOMWrapper::setJSWrapperForDOMNode(PassRefPtr<Node> node, v8::Persistent<v8::Object> wrapper)
    173     {
    174         ASSERT(maybeDOMWrapper(wrapper));
    175         ASSERT(!domWrapperType(wrapper)->toActiveDOMObjectFunction);
    176         ASSERT(!node->isActiveNode());
    177         getDOMNodeMap().set(node.leakRef(), wrapper);
    178     }
    179 
    180     inline void V8DOMWrapper::setJSWrapperForActiveDOMNode(PassRefPtr<Node> node, v8::Persistent<v8::Object> wrapper)
    181     {
    182         ASSERT(maybeDOMWrapper(wrapper));
    183         ASSERT(domWrapperType(wrapper)->toActiveDOMObjectFunction);
    184         ASSERT(node->isActiveNode());
    185         getActiveDOMNodeMap().set(node.leakRef(), wrapper);
    186     }
    187 
    188167} // namespace WebCore
    189168
Note: See TracChangeset for help on using the changeset viewer.