Changeset 232080 in webkit
- Timestamp:
- May 22, 2018 2:33:26 PM (6 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 1 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/CMakeLists.txt
r232074 r232080 558 558 heap/Synchronousness.h 559 559 heap/TinyBloomFilter.h 560 heap/UnconditionalFinalizer.h561 560 heap/VisitRaceKey.h 562 561 heap/Weak.h -
trunk/Source/JavaScriptCore/ChangeLog
r232076 r232080 1 2018-05-22 Keith Miller <keith_miller@apple.com> 2 3 Remove the UnconditionalFinalizer class 4 https://bugs.webkit.org/show_bug.cgi?id=185881 5 6 Reviewed by Filip Pizlo. 7 8 The only remaining user of this API is 9 JSWebAssemblyCodeBlock. This patch changes, JSWebAssemblyCodeBlock 10 to use the newer template based API and removes the old class. 11 12 * JavaScriptCore.xcodeproj/project.pbxproj: 13 * bytecode/CodeBlock.h: 14 * heap/Heap.cpp: 15 (JSC::Heap::finalizeUnconditionalFinalizers): 16 * heap/Heap.h: 17 * heap/SlotVisitor.cpp: 18 (JSC::SlotVisitor::addUnconditionalFinalizer): Deleted. 19 * heap/SlotVisitor.h: 20 * heap/UnconditionalFinalizer.h: Removed. 21 * wasm/js/JSWebAssemblyCodeBlock.cpp: 22 (JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock): 23 (JSC::JSWebAssemblyCodeBlock::visitChildren): 24 (JSC::JSWebAssemblyCodeBlock::finalizeUnconditionally): 25 (JSC::JSWebAssemblyCodeBlock::UnconditionalFinalizer::finalizeUnconditionally): Deleted. 26 * wasm/js/JSWebAssemblyCodeBlock.h: 27 * wasm/js/JSWebAssemblyModule.h: 28 29 * CMakeLists.txt: 30 * JavaScriptCore.xcodeproj/project.pbxproj: 31 * bytecode/CodeBlock.h: 32 * heap/Heap.cpp: 33 (JSC::Heap::finalizeUnconditionalFinalizers): 34 * heap/Heap.h: 35 * heap/SlotVisitor.cpp: 36 (JSC::SlotVisitor::addUnconditionalFinalizer): Deleted. 37 * heap/SlotVisitor.h: 38 * heap/UnconditionalFinalizer.h: Removed. 39 * wasm/js/JSWebAssemblyCodeBlock.cpp: 40 (JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock): 41 (JSC::JSWebAssemblyCodeBlock::visitChildren): 42 (JSC::JSWebAssemblyCodeBlock::finalizeUnconditionally): 43 (JSC::JSWebAssemblyCodeBlock::UnconditionalFinalizer::finalizeUnconditionally): Deleted. 44 * wasm/js/JSWebAssemblyCodeBlock.h: 45 * wasm/js/JSWebAssemblyModule.h: 46 1 47 2018-05-22 Keith Miller <keith_miller@apple.com> 2 48 -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r232074 r232080 349 349 0F5E0FE72086AD480097F0DE /* IsoSubspacePerVM.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5E0FE52086AD460097F0DE /* IsoSubspacePerVM.h */; settings = {ATTRIBUTES = (Private, ); }; }; 350 350 0F5EF91F16878F7D003E5C25 /* JITThunks.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5EF91C16878F78003E5C25 /* JITThunks.h */; settings = {ATTRIBUTES = (Private, ); }; }; 351 0F5F08CF146C7633000472A9 /* UnconditionalFinalizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5F08CE146C762F000472A9 /* UnconditionalFinalizer.h */; settings = {ATTRIBUTES = (Private, ); }; };352 351 0F60FE901FFC37020003320A /* ExecutableToCodeBlockEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F60FE8E1FFC36FD0003320A /* ExecutableToCodeBlockEdge.h */; settings = {ATTRIBUTES = (Private, ); }; }; 353 352 0F61832A1C45BF070072450B /* AirCCallingConvention.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F6183211C45BF070072450B /* AirCCallingConvention.h */; }; … … 2366 2365 0F5EF91B16878F78003E5C25 /* JITThunks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JITThunks.cpp; sourceTree = "<group>"; }; 2367 2366 0F5EF91C16878F78003E5C25 /* JITThunks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JITThunks.h; sourceTree = "<group>"; }; 2368 0F5F08CE146C762F000472A9 /* UnconditionalFinalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnconditionalFinalizer.h; sourceTree = "<group>"; };2369 2367 0F60FE8D1FFC36FC0003320A /* ExecutableToCodeBlockEdge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExecutableToCodeBlockEdge.cpp; sourceTree = "<group>"; }; 2370 2368 0F60FE8E1FFC36FD0003320A /* ExecutableToCodeBlockEdge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExecutableToCodeBlockEdge.h; sourceTree = "<group>"; }; … … 5774 5772 0F1FB38B1E173A6200A9BE50 /* SynchronousStopTheWorldMutatorScheduler.h */, 5775 5773 141448CC13A1783700F5BA1A /* TinyBloomFilter.h */, 5776 0F5F08CE146C762F000472A9 /* UnconditionalFinalizer.h */,5777 5774 0F4D8C721FC7A973001D32AC /* VisitCounter.h */, 5778 5775 0F952A9F1DF7860700E06FBD /* VisitRaceKey.cpp */, … … 8862 8859 0F4680D514BBD24B00BFE272 /* HostCallReturnValue.h in Headers */, 8863 8860 DC2143071CA32E55000A8869 /* ICStats.h in Headers */, 8861 0FB399BE20AF6B3D0017E213 /* ICStatusUtils.h in Headers */, 8864 8862 BC18C40F0E16F5CD00B34460 /* Identifier.h in Headers */, 8865 8863 8606DDEA18DA44AB00A383D0 /* IdentifierInlines.h in Headers */, … … 8909 8907 A55165D31BDF0B9E003B75C1 /* InspectorScriptProfilerAgent.h in Headers */, 8910 8908 0F49E9AA20AB4D00001CA0AA /* InstanceOfAccessCase.h in Headers */, 8909 0FB399BF20AF6B3F0017E213 /* InstanceOfStatus.h in Headers */, 8910 0FB399C020AF6B430017E213 /* InstanceOfVariant.h in Headers */, 8911 8911 969A07990ED1D3AE00F1F681 /* Instruction.h in Headers */, 8912 8912 A7A8AF3B17ADB5F3005AB174 /* Int16Array.h in Headers */, … … 9067 9067 7013CA8C1B491A9400CAE613 /* JSJob.h in Headers */, 9068 9068 BC18C4160E16F5CD00B34460 /* JSLexicalEnvironment.h in Headers */, 9069 0FB399C020AF6B430017E213 /* InstanceOfVariant.h in Headers */,9070 9069 BC18C4230E16F5CD00B34460 /* JSLock.h in Headers */, 9071 9070 C25D709C16DE99F400FCA6BC /* JSManagedValue.h in Headers */, … … 9192 9191 981ED82328234D91BAECCADE /* MachineContext.h in Headers */, 9193 9192 14B723B812D7DA6F003BD5ED /* MachineStackMarker.h in Headers */, 9194 0FB399BF20AF6B3F0017E213 /* InstanceOfStatus.h in Headers */,9195 9193 86C36EEA0EE1289D00B3DF59 /* MacroAssembler.h in Headers */, 9196 9194 86D3B2C610156BDE002865E7 /* MacroAssemblerARM.h in Headers */, … … 9449 9447 996B73271BDA08EF00331B84 /* SymbolConstructor.lut.h in Headers */, 9450 9448 705B41B01A6E501E00716757 /* SymbolObject.h in Headers */, 9451 0FB399BE20AF6B3D0017E213 /* ICStatusUtils.h in Headers */,9452 9449 705B41B21A6E501E00716757 /* SymbolPrototype.h in Headers */, 9453 9450 996B73281BDA08EF00331B84 /* SymbolPrototype.lut.h in Headers */, … … 9490 9487 A7A8AF3F17ADB5F3005AB174 /* Uint8Array.h in Headers */, 9491 9488 A7A8AF4017ADB5F3005AB174 /* Uint8ClampedArray.h in Headers */, 9492 0F5F08CF146C7633000472A9 /* UnconditionalFinalizer.h in Headers */,9493 9489 A7B601821639FD2A00372BA3 /* UnlinkedCodeBlock.h in Headers */, 9494 9490 14AD91241DCA9FA40014F9FE /* UnlinkedEvalCodeBlock.h in Headers */, -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.h
r231719 r232080 64 64 #include "ProgramExecutable.h" 65 65 #include "PutPropertySlot.h" 66 #include "UnconditionalFinalizer.h"67 66 #include "ValueProfile.h" 68 67 #include "VirtualRegister.h" -
trunk/Source/JavaScriptCore/heap/Heap.cpp
r232074 r232080 592 592 finalizeMarkedUnconditionalFinalizers<JSWeakSet>(vm()->weakSetSpace); 593 593 finalizeMarkedUnconditionalFinalizers<JSWeakMap>(vm()->weakMapSpace); 594 595 while (m_unconditionalFinalizers.hasNext()) { 596 UnconditionalFinalizer* finalizer = m_unconditionalFinalizers.removeNext(); 597 finalizer->finalizeUnconditionally(); 598 } 594 595 #if ENABLE(WEBASSEMBLY) 596 finalizeMarkedUnconditionalFinalizers<JSWebAssemblyCodeBlock>(vm()->webAssemblyCodeBlockSpace); 597 #endif 599 598 } 600 599 -
trunk/Source/JavaScriptCore/heap/Heap.h
r232074 r232080 40 40 #include "StructureIDTable.h" 41 41 #include "Synchronousness.h" 42 #include "UnconditionalFinalizer.h"43 42 #include "WeakHandleOwner.h" 44 43 #include "WeakReferenceHarvester.h" … … 671 670 672 671 ListableHandler<WeakReferenceHarvester>::List m_weakReferenceHarvesters; 673 ListableHandler<UnconditionalFinalizer>::List m_unconditionalFinalizers;674 672 675 673 ParallelHelperClient m_helperClient; -
trunk/Source/JavaScriptCore/heap/SlotVisitor.cpp
r227718 r232080 759 759 } 760 760 761 void SlotVisitor::addUnconditionalFinalizer(UnconditionalFinalizer* unconditionalFinalizer)762 {763 m_heap.m_unconditionalFinalizers.addThreadSafe(unconditionalFinalizer);764 }765 766 761 void SlotVisitor::didRace(const VisitRaceKey& race) 767 762 { -
trunk/Source/JavaScriptCore/heap/SlotVisitor.h
r227617 r232080 45 45 class MarkingConstraint; 46 46 class MarkingConstraintSolver; 47 class UnconditionalFinalizer;48 47 template<typename T> class Weak; 49 48 class WeakReferenceHarvester; … … 143 142 144 143 void addWeakReferenceHarvester(WeakReferenceHarvester*); 145 void addUnconditionalFinalizer(UnconditionalFinalizer*);146 144 147 145 void dump(PrintStream&) const; -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCodeBlock.cpp
r229209 r232080 51 51 , m_codeBlock(WTFMove(codeBlock)) 52 52 { 53 m_unconditionalFinalizer = PoisonedUniquePtr<JSWebAssemblyCodeBlockPoison, UnconditionalFinalizer>::create(*this);54 55 53 // FIXME: We should not need to do this synchronously. 56 54 // https://bugs.webkit.org/show_bug.cgi?id=170567 … … 93 91 94 92 Base::visitChildren(thisObject, visitor); 95 96 visitor.addUnconditionalFinalizer(thisObject->m_unconditionalFinalizer.get());97 93 } 98 94 99 void JSWebAssemblyCodeBlock:: UnconditionalFinalizer::finalizeUnconditionally()95 void JSWebAssemblyCodeBlock::finalizeUnconditionally(VM& vm) 100 96 { 101 for (auto iter = codeBlock.m_callLinkInfos.begin(); !!iter; ++iter)102 (*iter)->visitWeak( *codeBlock.vm());97 for (auto iter = m_callLinkInfos.begin(); !!iter; ++iter) 98 (*iter)->visitWeak(vm); 103 99 } 104 100 -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCodeBlock.h
r230748 r232080 33 33 #include "PromiseDeferredTimer.h" 34 34 #include "Structure.h" 35 #include "UnconditionalFinalizer.h"36 35 #include "WasmCallee.h" 37 36 #include "WasmFormat.h" … … 83 82 } 84 83 84 void finalizeUnconditionally(VM&); 85 85 86 private: 86 87 JSWebAssemblyCodeBlock(VM&, Ref<Wasm::CodeBlock>&&, const Wasm::ModuleInformation&); … … 90 91 static void visitChildren(JSCell*, SlotVisitor&); 91 92 92 struct UnconditionalFinalizer : public JSC::UnconditionalFinalizer {93 UnconditionalFinalizer(JSWebAssemblyCodeBlock& codeBlock)94 : codeBlock(codeBlock)95 { }96 void finalizeUnconditionally() override;97 JSWebAssemblyCodeBlock& codeBlock;98 };99 100 93 PoisonedRef<JSWebAssemblyCodeBlockPoison, Wasm::CodeBlock> m_codeBlock; 101 94 Vector<MacroAssemblerCodeRef<WasmEntryPtrTag>> m_wasmToJSExitStubs; 102 PoisonedUniquePtr<JSWebAssemblyCodeBlockPoison, UnconditionalFinalizer> m_unconditionalFinalizer;103 95 Bag<CallLinkInfo> m_callLinkInfos; 104 96 String m_errorMessage; -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h
r229413 r232080 31 31 #include "JSDestructibleObject.h" 32 32 #include "JSObject.h" 33 #include "UnconditionalFinalizer.h"34 33 #include "WasmMemoryMode.h" 35 34 #include <wtf/Bag.h>
Note: See TracChangeset
for help on using the changeset viewer.