Changeset 180772 in webkit
- Timestamp:
- Feb 27, 2015 11:52:11 AM (9 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r180771 r180772 1 2015-02-27 Andreas Kling <akling@apple.com> 2 3 Use NeverDestroyed for JS wrapper owners. 4 <https://webkit.org/b/142090> 5 6 Reviewed by Chris Dumez. 7 8 Using NeverDestroyed puts these objects in BSS which is preferable 9 since that prevents them from pinning down entire malloc pages forever. 10 11 * bindings/scripts/CodeGeneratorJS.pm: 12 (GenerateHeader): Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL. 13 14 * bindings/scripts/test/JS/*: Rebaseline bindings tests for this change. 15 1 16 2015-02-27 Chris Dumez <cdumez@apple.com> 2 17 -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
r180653 r180772 1156 1156 push(@headerContent, "class JS${interfaceName}Owner : public JSC::WeakHandleOwner {\n"); 1157 1157 } 1158 $headerIncludes{"<wtf/NeverDestroyed.h>"} = 1; 1158 1159 push(@headerContent, "public:\n"); 1159 1160 push(@headerContent, " virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&);\n"); … … 1163 1164 push(@headerContent, "inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, $implType*)\n"); 1164 1165 push(@headerContent, "{\n"); 1165 push(@headerContent, " DEPRECATED_DEFINE_STATIC_LOCAL(JS${interfaceName}Owner, js${interfaceName}Owner, ());\n");1166 push(@headerContent, " return & js${interfaceName}Owner;\n");1166 push(@headerContent, " static NeverDestroyed<JS${interfaceName}Owner> owner;\n"); 1167 push(@headerContent, " return &owner.get();\n"); 1167 1168 push(@headerContent, "}\n"); 1168 1169 push(@headerContent, "\n"); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestActiveDOMObject.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 85 86 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestActiveDOMObject*) 86 87 { 87 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestActiveDOMObjectOwner, jsTestActiveDOMObjectOwner, ());88 return & jsTestActiveDOMObjectOwner;88 static NeverDestroyed<JSTestActiveDOMObjectOwner> owner; 89 return &owner.get(); 89 90 } 90 91 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestCustomNamedGetter.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 89 90 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestCustomNamedGetter*) 90 91 { 91 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestCustomNamedGetterOwner, jsTestCustomNamedGetterOwner, ());92 return & jsTestCustomNamedGetterOwner;92 static NeverDestroyed<JSTestCustomNamedGetterOwner> owner; 93 return &owner.get(); 93 94 } 94 95 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestEventConstructor.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 85 86 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestEventConstructor*) 86 87 { 87 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestEventConstructorOwner, jsTestEventConstructorOwner, ());88 return & jsTestEventConstructorOwner;88 static NeverDestroyed<JSTestEventConstructorOwner> owner; 89 return &owner.get(); 89 90 } 90 91 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestEventTarget.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 93 94 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestEventTarget*) 94 95 { 95 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestEventTargetOwner, jsTestEventTargetOwner, ());96 return & jsTestEventTargetOwner;96 static NeverDestroyed<JSTestEventTargetOwner> owner; 97 return &owner.get(); 97 98 } 98 99 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h
r180301 r180772 25 25 #include "TestException.h" 26 26 #include <runtime/ErrorPrototype.h> 27 #include <wtf/NeverDestroyed.h> 27 28 28 29 namespace WebCore { … … 86 87 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestException*) 87 88 { 88 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestExceptionOwner, jsTestExceptionOwner, ());89 return & jsTestExceptionOwner;89 static NeverDestroyed<JSTestExceptionOwner> owner; 90 return &owner.get(); 90 91 } 91 92 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestGenerateIsReachable.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 83 84 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestGenerateIsReachable*) 84 85 { 85 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestGenerateIsReachableOwner, jsTestGenerateIsReachableOwner, ());86 return & jsTestGenerateIsReachableOwner;86 static NeverDestroyed<JSTestGenerateIsReachableOwner> owner; 87 return &owner.get(); 87 88 } 88 89 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h
r180301 r180772 26 26 #include "JSDOMWrapper.h" 27 27 #include "TestInterface.h" 28 #include <wtf/NeverDestroyed.h> 28 29 29 30 namespace WebCore { … … 112 113 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestInterface*) 113 114 { 114 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestInterfaceOwner, jsTestInterfaceOwner, ());115 return & jsTestInterfaceOwner;115 static NeverDestroyed<JSTestInterfaceOwner> owner; 116 return &owner.get(); 116 117 } 117 118 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestMediaQueryListListener.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 83 84 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestMediaQueryListListener*) 84 85 { 85 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestMediaQueryListListenerOwner, jsTestMediaQueryListListenerOwner, ());86 return & jsTestMediaQueryListListenerOwner;86 static NeverDestroyed<JSTestMediaQueryListListenerOwner> owner; 87 return &owner.get(); 87 88 } 88 89 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestNamedConstructor.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 84 85 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestNamedConstructor*) 85 86 { 86 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestNamedConstructorOwner, jsTestNamedConstructorOwner, ());87 return & jsTestNamedConstructorOwner;87 static NeverDestroyed<JSTestNamedConstructorOwner> owner; 88 return &owner.get(); 88 89 } 89 90 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestNondeterministic.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 83 84 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestNondeterministic*) 84 85 { 85 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestNondeterministicOwner, jsTestNondeterministicOwner, ());86 return & jsTestNondeterministicOwner;86 static NeverDestroyed<JSTestNondeterministicOwner> owner; 87 return &owner.get(); 87 88 } 88 89 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestObj.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 98 99 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestObj*) 99 100 { 100 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestObjOwner, jsTestObjOwner, ());101 return & jsTestObjOwner;101 static NeverDestroyed<JSTestObjOwner> owner; 102 return &owner.get(); 102 103 } 103 104 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestOverloadedConstructors.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 83 84 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestOverloadedConstructors*) 84 85 { 85 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestOverloadedConstructorsOwner, jsTestOverloadedConstructorsOwner, ());86 return & jsTestOverloadedConstructorsOwner;86 static NeverDestroyed<JSTestOverloadedConstructorsOwner> owner; 87 return &owner.get(); 87 88 } 88 89 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h
r180301 r180772 26 26 #include "JSDOMWrapper.h" 27 27 #include "TestSerializedScriptValueInterface.h" 28 #include <wtf/NeverDestroyed.h> 28 29 29 30 namespace WebCore { … … 89 90 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestSerializedScriptValueInterface*) 90 91 { 91 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestSerializedScriptValueInterfaceOwner, jsTestSerializedScriptValueInterfaceOwner, ());92 return & jsTestSerializedScriptValueInterfaceOwner;92 static NeverDestroyed<JSTestSerializedScriptValueInterfaceOwner> owner; 93 return &owner.get(); 93 94 } 94 95 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "TestTypedefs.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 85 86 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestTypedefs*) 86 87 { 87 DEPRECATED_DEFINE_STATIC_LOCAL(JSTestTypedefsOwner, jsTestTypedefsOwner, ());88 return & jsTestTypedefsOwner;88 static NeverDestroyed<JSTestTypedefsOwner> owner; 89 return &owner.get(); 89 90 } 90 91 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.h
r180301 r180772 25 25 #include "attribute.h" 26 26 #include <runtime/ErrorPrototype.h> 27 #include <wtf/NeverDestroyed.h> 27 28 28 29 namespace WebCore { … … 84 85 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, attribute*) 85 86 { 86 DEPRECATED_DEFINE_STATIC_LOCAL(JSattributeOwner, jsattributeOwner, ());87 return & jsattributeOwner;87 static NeverDestroyed<JSattributeOwner> owner; 88 return &owner.get(); 88 89 } 89 90 -
trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.h
r180301 r180772 24 24 #include "JSDOMWrapper.h" 25 25 #include "readonly.h" 26 #include <wtf/NeverDestroyed.h> 26 27 27 28 namespace WebCore { … … 83 84 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, readonly*) 84 85 { 85 DEPRECATED_DEFINE_STATIC_LOCAL(JSreadonlyOwner, jsreadonlyOwner, ());86 return & jsreadonlyOwner;86 static NeverDestroyed<JSreadonlyOwner> owner; 87 return &owner.get(); 87 88 } 88 89
Note: See TracChangeset
for help on using the changeset viewer.