https://bugs.webkit.org/show_bug.cgi?id=82256
Reviewed by Kentaro Hara.
This is an attempt to reland r112318, which was rolled out due to suspicion of OOM issues.
I've landed the refactoring bits of r112318 as separate changes,
so that this patch contains only the change in which map setter is called.
Binding tests have been updated with new output.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateToV8Converters): Call appropriate V8DOMWrapper::setJSWrapperFor*
to set up wrapper mapping and remove call to leakRef() which is handled
in V8DOMWrapper.
* 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/V8TestNode.cpp:
(WebCore::V8TestNode::wrapSlow):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::wrapSlow):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@114034
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-04-12 Adam Klein <adamk@chromium.org>
+
+ Always set V8 wrappers via V8DOMWrapper::setJSWrapperFor* instead of WeakReferenceMap::set()
+ https://bugs.webkit.org/show_bug.cgi?id=82256
+
+ Reviewed by Kentaro Hara.
+
+ This is an attempt to reland r112318, which was rolled out due to suspicion of OOM issues.
+
+ I've landed the refactoring bits of r112318 as separate changes,
+ so that this patch contains only the change in which map setter is called.
+
+ Binding tests have been updated with new output.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateToV8Converters): Call appropriate V8DOMWrapper::setJSWrapperFor*
+ to set up wrapper mapping and remove call to leakRef() which is handled
+ in V8DOMWrapper.
+ * 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/V8TestNode.cpp:
+ (WebCore::V8TestNode::wrapSlow):
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::V8TestObj::wrapSlow):
+ * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
+ (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
+
2012-04-12 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=83817
my $className = shift;
my $nativeType = shift;
- my $domMapFunction = GetDomMapFunction($dataNode, $interfaceName);
+ my $domMapName = GetDomMapName($dataNode, $interfaceName);
my $forceNewObjectInput = IsDOMNodeType($interfaceName) ? ", bool forceNewObject" : "";
my $forceNewObjectCall = IsDOMNodeType($interfaceName) ? ", forceNewObject" : "";
my $wrapSlowArgumentType = GetPassRefPtrType($nativeType);
END
}
push(@implContent, <<END);
- ${domMapFunction}.set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperFor${domMapName}(impl, wrapperHandle);
return wrapper;
}
END
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getActiveDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForActiveDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getActiveDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForActiveDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
wrapperHandle.SetWrapperClassId(v8DOMSubtreeClassId);
- getDOMNodeMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMNode(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
return wrapper;
}
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
+ V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
return wrapper;
}