Changeset 112906 in webkit
- Timestamp:
- Apr 2, 2012 10:56:58 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r112901 r112906 1 2012-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 1 41 2012-04-02 Srikumar Bonda <srikumar.b@gmail.com> 2 42 -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
r112811 r112906 1753 1753 } 1754 1754 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 1756 1762 push(@implContent, <<END); 1757 1763 … … 1927 1933 } 1928 1934 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 } 1930 1943 push(@implContent, <<END); 1931 1944 … … 3081 3094 my $nativeType = shift; 3082 3095 3083 my $domMap Name = GetDomWrapperMapName($dataNode, $interfaceName);3096 my $domMapFunction = GetDomMapFunction($dataNode, $interfaceName); 3084 3097 my $forceNewObjectInput = IsDOMNodeType($interfaceName) ? ", bool forceNewObject" : ""; 3085 3098 my $forceNewObjectCall = IsDOMNodeType($interfaceName) ? ", forceNewObject" : ""; … … 3170 3183 } 3171 3184 push(@implContent, <<END); 3172 V8DOMWrapper::setJSWrapperFor${domMapName}(impl, wrapperHandle);3185 ${domMapFunction}.set(impl.leakRef(), wrapperHandle); 3173 3186 return wrapper; 3174 3187 } … … 3177 3190 3178 3191 sub GetDomMapFunction 3179 {3180 my $mapName = GetDomWrapperMapName(@_);3181 return "get${mapName}Map()";3182 }3183 3184 sub GetDomWrapperMapName3185 3192 { 3186 3193 my $dataNode = shift; 3187 3194 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()"; 3193 3200 } 3194 3201 -
trunk/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp
r112318 r112906 133 133 if (!hasDependentLifetime) 134 134 wrapperHandle.MarkIndependent(); 135 V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);135 getDOMObjectMap().set(impl.leakRef(), wrapperHandle); 136 136 return wrapper; 137 137 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp
r112318 r112906 189 189 if (!hasDependentLifetime) 190 190 wrapperHandle.MarkIndependent(); 191 V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);191 getDOMObjectMap().set(impl.leakRef(), wrapperHandle); 192 192 return wrapper; 193 193 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp
r112318 r112906 123 123 if (!hasDependentLifetime) 124 124 wrapperHandle.MarkIndependent(); 125 V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);125 getDOMObjectMap().set(impl.leakRef(), wrapperHandle); 126 126 return wrapper; 127 127 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp
r112318 r112906 158 158 if (!hasDependentLifetime) 159 159 wrapperHandle.MarkIndependent(); 160 V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);160 getDOMObjectMap().set(impl.leakRef(), wrapperHandle); 161 161 return wrapper; 162 162 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp
r112318 r112906 186 186 if (!hasDependentLifetime) 187 187 wrapperHandle.MarkIndependent(); 188 V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);188 getDOMObjectMap().set(impl.leakRef(), wrapperHandle); 189 189 return wrapper; 190 190 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp
r112318 r112906 318 318 if (!hasDependentLifetime) 319 319 wrapperHandle.MarkIndependent(); 320 V8DOMWrapper::setJSWrapperForActiveDOMObject(impl, wrapperHandle);320 getActiveDOMObjectMap().set(impl.leakRef(), wrapperHandle); 321 321 return wrapper; 322 322 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp
r112318 r112906 123 123 if (!hasDependentLifetime) 124 124 wrapperHandle.MarkIndependent(); 125 V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);125 getDOMObjectMap().set(impl.leakRef(), wrapperHandle); 126 126 return wrapper; 127 127 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp
r112318 r112906 167 167 if (!hasDependentLifetime) 168 168 wrapperHandle.MarkIndependent(); 169 V8DOMWrapper::setJSWrapperForActiveDOMObject(impl, wrapperHandle);169 getActiveDOMObjectMap().set(impl.leakRef(), wrapperHandle); 170 170 return wrapper; 171 171 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
r112653 r112906 2172 2172 if (!hasDependentLifetime) 2173 2173 wrapperHandle.MarkIndependent(); 2174 V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);2174 getDOMObjectMap().set(impl.leakRef(), wrapperHandle); 2175 2175 return wrapper; 2176 2176 } -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp
r112318 r112906 289 289 if (!hasDependentLifetime) 290 290 wrapperHandle.MarkIndependent(); 291 V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);291 getDOMObjectMap().set(impl.leakRef(), wrapperHandle); 292 292 return wrapper; 293 293 } -
trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp
r112318 r112906 37 37 #include "EventTargetInterfaces.h" 38 38 #include "FrameLoaderClient.h" 39 #include "SVGElementInstance.h"40 39 #include "StylePropertySet.h" 41 40 #include "V8AbstractEventListener.h" … … 68 67 namespace WebCore { 69 68 70 #if ENABLE(SVG) 71 void V8DOMWrapper::setJSWrapperForDOMSVGElementInstance(PassRefPtr<SVGElementInstance> element, v8::Persistent<v8::Object> wrapper) 69 void V8DOMWrapper::setJSWrapperForDOMNode(PassRefPtr<Node> node, v8::Persistent<v8::Object> wrapper) 72 70 { 73 71 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 } 77 77 78 78 v8::Local<v8::Function> V8DOMWrapper::getConstructor(WrapperTypeInfo* type, v8::Handle<v8::Value> objectPrototype) -
trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h
r112318 r112906 111 111 template<typename T> static void setJSWrapperForActiveDOMObject(PassRefPtr<T>, v8::Persistent<v8::Object>); 112 112 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 #endif117 113 118 114 static bool isValidDOMObject(v8::Handle<v8::Value>); … … 155 151 156 152 template<typename T> 157 inlinevoid V8DOMWrapper::setJSWrapperForDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)153 void V8DOMWrapper::setJSWrapperForDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper) 158 154 { 159 155 ASSERT(maybeDOMWrapper(wrapper)); … … 163 159 164 160 template<typename T> 165 inlinevoid V8DOMWrapper::setJSWrapperForActiveDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)161 void V8DOMWrapper::setJSWrapperForActiveDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper) 166 162 { 167 163 ASSERT(maybeDOMWrapper(wrapper)); … … 169 165 getActiveDOMObjectMap().set(object.leakRef(), wrapper); 170 166 } 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 188 167 } // namespace WebCore 189 168
Note: See TracChangeset
for help on using the changeset viewer.