Skip to content

Commit ff584f7

Browse files
committed
2011-04-21 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen. Start moving to a general visitor pattern for GC traversal https://bugs.webkit.org/show_bug.cgi?id=59141 This is just a rename: markChildren -> visitChildren markAggregate -> visitAggregate markStack -> visitor MarkStack -> typedef'd to SlotVisitor * API/JSCallbackObject.h: (JSC::JSCallbackObjectData::visitChildren): (JSC::JSCallbackObjectData::JSPrivatePropertyMap::visitChildren): (JSC::JSCallbackObject::visitChildren): * JavaScriptCore.exp: * bytecode/CodeBlock.cpp: (JSC::CodeBlock::visitStructures): (JSC::EvalCodeCache::visitAggregate): (JSC::CodeBlock::visitAggregate): * bytecode/CodeBlock.h: * bytecode/EvalCodeCache.h: * bytecode/Instruction.h: (JSC::PolymorphicAccessStructureList::visitAggregate): * bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::visitAggregate): * bytecode/StructureStubInfo.h: * debugger/DebuggerActivation.cpp: (JSC::DebuggerActivation::visitChildren): * debugger/DebuggerActivation.h: * heap/HandleHeap.cpp: (JSC::WeakHandleOwner::isReachableFromOpaqueRoots): (JSC::HandleHeap::markStrongHandles): (JSC::HandleHeap::markWeakHandles): * heap/HandleHeap.h: * heap/HandleStack.cpp: (JSC::HandleStack::mark): * heap/HandleStack.h: * heap/Heap.cpp: (JSC::Heap::markProtectedObjects): (JSC::Heap::markTempSortVectors): (JSC::Heap::markRoots): * heap/Heap.h: * heap/MarkStack.cpp: (JSC::MarkStack::visitChildren): (JSC::MarkStack::drain): * heap/MarkStack.h: (JSC::HeapRootVisitor::HeapRootVisitor): (JSC::HeapRootVisitor::mark): (JSC::HeapRootVisitor::visitor): * heap/MarkedSpace.h: * runtime/ArgList.cpp: (JSC::MarkedArgumentBuffer::markLists): * runtime/ArgList.h: * runtime/Arguments.cpp: (JSC::Arguments::visitChildren): * runtime/Arguments.h: * runtime/Executable.cpp: (JSC::EvalExecutable::visitChildren): (JSC::ProgramExecutable::visitChildren): (JSC::FunctionExecutable::visitChildren): * runtime/Executable.h: * runtime/GetterSetter.cpp: (JSC::GetterSetter::visitChildren): * runtime/GetterSetter.h: (JSC::GetterSetter::createStructure): * runtime/JSAPIValueWrapper.h: (JSC::JSAPIValueWrapper::createStructure): * runtime/JSActivation.cpp: (JSC::JSActivation::visitChildren): * runtime/JSActivation.h: * runtime/JSArray.cpp: (JSC::JSArray::visitChildren): * runtime/JSArray.h: (JSC::JSArray::visitDirect): * runtime/JSCell.h: (JSC::JSCell::JSCell::visitChildren): * runtime/JSFunction.cpp: (JSC::JSFunction::visitChildren): * runtime/JSFunction.h: * runtime/JSGlobalObject.cpp: (JSC::visitIfNeeded): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: * runtime/JSONObject.cpp: * runtime/JSObject.cpp: (JSC::JSObject::visitChildren): * runtime/JSObject.h: (JSC::JSObject::visitDirect): * runtime/JSPropertyNameIterator.cpp: (JSC::JSPropertyNameIterator::visitChildren): * runtime/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::createStructure): * runtime/JSStaticScopeObject.cpp: (JSC::JSStaticScopeObject::visitChildren): * runtime/JSStaticScopeObject.h: * runtime/JSTypeInfo.h: (JSC::TypeInfo::TypeInfo): (JSC::TypeInfo::overridesVisitChildren): * runtime/JSWrapperObject.cpp: (JSC::JSWrapperObject::visitChildren): * runtime/JSWrapperObject.h: * runtime/JSZombie.h: (JSC::JSZombie::visitChildren): * runtime/NativeErrorConstructor.cpp: (JSC::NativeErrorConstructor::visitChildren): * runtime/NativeErrorConstructor.h: * runtime/RegExpObject.cpp: (JSC::RegExpObject::visitChildren): * runtime/RegExpObject.h: * runtime/ScopeChain.cpp: (JSC::ScopeChainNode::visitChildren): * runtime/ScopeChain.h: * runtime/SmallStrings.cpp: (JSC::SmallStrings::visitChildren): * runtime/SmallStrings.h: * runtime/Structure.cpp: (JSC::Structure::Structure): (JSC::Structure::visitChildren): * runtime/Structure.h: * runtime/StructureChain.cpp: (JSC::StructureChain::visitChildren): * runtime/StructureChain.h: (JSC::StructureChain::createStructure): 2011-04-21 Oliver Hunt <oliver@apple.com> Reviewed by Geoffrey Garen. Start moving to a general visitor pattern for GC traversal https://bugs.webkit.org/show_bug.cgi?id=59141 This is just a rename: markChildren -> visitChildren markAggregate -> visitAggregate markStack -> visitor MarkStack -> typedef'd to SlotVisitor * UserObjectImp.cpp: (UserObjectImp::visitChildren): 2011-04-21 Oliver Hunt <oliver@apple.com> Reviewed by Geoffrey Garen. Start moving to a general visitor pattern for GC traversal https://bugs.webkit.org/show_bug.cgi?id=59141 This is just a rename: markChildren -> visitChildren markAggregate -> visitAggregate markStack -> visitor MarkStack -> typedef'd to SlotVisitor * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::visitChildren): * bindings/js/JSAudioConstructor.cpp: (WebCore::constructAudio): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::JSCSSRule::visitChildren): * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::visitChildren): * bindings/js/JSDOMBinding.cpp: (WebCore::visitActiveObjectsForContext): (WebCore::markDOMObjectWrapper): * bindings/js/JSDOMBinding.h: * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::visitChildren): * bindings/js/JSDOMGlobalObject.h: * bindings/js/JSDOMImplementationCustom.cpp: (WebCore::JSDOMImplementation::visitChildren): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::visitChildren): * bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::visitChildren): * bindings/js/JSDOMWindowShell.h: * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::visitChildren): * bindings/js/JSElementCustom.cpp: (WebCore::JSElement::visitChildren): * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::markJSFunction): * bindings/js/JSEventListener.h: * bindings/js/JSHTMLCanvasElementCustom.cpp: (WebCore::JSHTMLCanvasElement::visitChildren): * bindings/js/JSHTMLLinkElementCustom.cpp: (WebCore::JSHTMLLinkElement::visitChildren): * bindings/js/JSHTMLStyleElementCustom.cpp: (WebCore::JSHTMLStyleElement::visitChildren): * bindings/js/JSImageConstructor.cpp: (WebCore::constructImage): * bindings/js/JSJavaScriptAudioNodeCustom.cpp: (WebCore::JSJavaScriptAudioNode::visitChildren): * bindings/js/JSMessageChannelCustom.cpp: (WebCore::JSMessageChannel::visitChildren): * bindings/js/JSMessagePortCustom.cpp: (WebCore::JSMessagePort::visitChildren): * bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMapOwner::isReachableFromOpaqueRoots): (WebCore::JSNamedNodeMap::visitChildren): * bindings/js/JSNavigatorCustom.cpp: (WebCore::JSNavigator::visitChildren): * bindings/js/JSNodeCustom.cpp: (WebCore::isObservable): (WebCore::isReachableFromDOM): (WebCore::JSNodeOwner::isReachableFromOpaqueRoots): (WebCore::JSNode::visitChildren): * bindings/js/JSNodeCustom.h: * bindings/js/JSNodeFilterCondition.cpp: (WebCore::JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots): * bindings/js/JSNodeFilterCondition.h: * bindings/js/JSNodeFilterCustom.cpp: (WebCore::JSNodeFilter::visitChildren): * bindings/js/JSNodeIteratorCustom.cpp: (WebCore::JSNodeIterator::visitChildren): * bindings/js/JSNodeListCustom.cpp: (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots): * bindings/js/JSProcessingInstructionCustom.cpp: (WebCore::JSProcessingInstruction::visitChildren): * bindings/js/JSSVGElementInstanceCustom.cpp: (WebCore::JSSVGElementInstance::visitChildren): * bindings/js/JSSharedWorkerCustom.cpp: (WebCore::JSSharedWorker::visitChildren): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::JSStyleSheet::visitChildren): * bindings/js/JSTreeWalkerCustom.cpp: (WebCore::JSTreeWalker::visitChildren): * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::visitChildren): * bindings/js/JSWebKitAnimationListCustom.cpp: (WebCore::JSWebKitAnimationList::visitChildren): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::visitChildren): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::visitChildren): * bindings/js/JSXMLHttpRequestUploadCustom.cpp: (WebCore::JSXMLHttpRequestUpload::visitChildren): * bindings/scripts/CodeGeneratorJS.pm: * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtRuntimeObject::visitChildren): (JSC::Bindings::QtInstance::markAggregate): * bridge/qt/qt_instance.h: * bridge/qt/qt_pixmapruntime.cpp: * bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeMetaMethod::visitChildren): * bridge/qt/qt_runtime.h: * dom/EventListener.h: (WebCore::EventListener::visitJSFunction): * dom/EventTarget.h: (WebCore::EventTarget::visitJSEventListeners): * dom/Node.h: * dom/NodeFilterCondition.h: (WebCore::NodeFilterCondition::visitAggregate): * page/DOMWindow.h: * workers/WorkerContext.h: Canonical link: https://commits.webkit.org/74293@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@84556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent ca5207a commit ff584f7

120 files changed

Lines changed: 764 additions & 490 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎Source/JavaScriptCore/API/JSCallbackObject.h‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ struct JSCallbackObjectData : WeakHandleOwner {
6868
m_privateProperties->deletePrivateProperty(propertyName);
6969
}
7070

71-
void markChildren(MarkStack& markStack)
71+
void visitChildren(SlotVisitor& visitor)
7272
{
7373
if (!m_privateProperties)
7474
return;
75-
m_privateProperties->markChildren(markStack);
75+
m_privateProperties->visitChildren(visitor);
7676
}
7777

7878
void* privateData;
@@ -97,11 +97,11 @@ struct JSCallbackObjectData : WeakHandleOwner {
9797
m_propertyMap.remove(propertyName.impl());
9898
}
9999

100-
void markChildren(MarkStack& markStack)
100+
void visitChildren(SlotVisitor& visitor)
101101
{
102102
for (PrivatePropertyMap::iterator ptr = m_propertyMap.begin(); ptr != m_propertyMap.end(); ++ptr) {
103103
if (ptr->second)
104-
markStack.append(&ptr->second);
104+
visitor.append(&ptr->second);
105105
}
106106
}
107107

@@ -149,7 +149,7 @@ class JSCallbackObject : public Base {
149149
}
150150

151151
protected:
152-
static const unsigned StructureFlags = OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesHasInstance | OverridesMarkChildren | OverridesGetPropertyNames | Base::StructureFlags;
152+
static const unsigned StructureFlags = OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesHasInstance | OverridesVisitChildren | OverridesGetPropertyNames | Base::StructureFlags;
153153

154154
private:
155155
virtual UString className() const;
@@ -172,10 +172,10 @@ class JSCallbackObject : public Base {
172172
virtual ConstructType getConstructData(ConstructData&);
173173
virtual CallType getCallData(CallData&);
174174

175-
virtual void markChildren(MarkStack& markStack)
175+
virtual void visitChildren(SlotVisitor& visitor)
176176
{
177-
Base::markChildren(markStack);
178-
m_callbackObjectData->markChildren(markStack);
177+
Base::visitChildren(visitor);
178+
m_callbackObjectData->visitChildren(visitor);
179179
}
180180

181181
void init(ExecState*);

‎Source/JavaScriptCore/ChangeLog‎

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,130 @@
1+
2011-04-21 Oliver Hunt <oliver@apple.com>
2+
3+
Reviewed by Geoffrey Garen.
4+
5+
Start moving to a general visitor pattern for GC traversal
6+
https://bugs.webkit.org/show_bug.cgi?id=59141
7+
8+
This is just a rename:
9+
markChildren -> visitChildren
10+
markAggregate -> visitAggregate
11+
markStack -> visitor
12+
MarkStack -> typedef'd to SlotVisitor
13+
14+
* API/JSCallbackObject.h:
15+
(JSC::JSCallbackObjectData::visitChildren):
16+
(JSC::JSCallbackObjectData::JSPrivatePropertyMap::visitChildren):
17+
(JSC::JSCallbackObject::visitChildren):
18+
* JavaScriptCore.exp:
19+
* bytecode/CodeBlock.cpp:
20+
(JSC::CodeBlock::visitStructures):
21+
(JSC::EvalCodeCache::visitAggregate):
22+
(JSC::CodeBlock::visitAggregate):
23+
* bytecode/CodeBlock.h:
24+
* bytecode/EvalCodeCache.h:
25+
* bytecode/Instruction.h:
26+
(JSC::PolymorphicAccessStructureList::visitAggregate):
27+
* bytecode/StructureStubInfo.cpp:
28+
(JSC::StructureStubInfo::visitAggregate):
29+
* bytecode/StructureStubInfo.h:
30+
* debugger/DebuggerActivation.cpp:
31+
(JSC::DebuggerActivation::visitChildren):
32+
* debugger/DebuggerActivation.h:
33+
* heap/HandleHeap.cpp:
34+
(JSC::WeakHandleOwner::isReachableFromOpaqueRoots):
35+
(JSC::HandleHeap::markStrongHandles):
36+
(JSC::HandleHeap::markWeakHandles):
37+
* heap/HandleHeap.h:
38+
* heap/HandleStack.cpp:
39+
(JSC::HandleStack::mark):
40+
* heap/HandleStack.h:
41+
* heap/Heap.cpp:
42+
(JSC::Heap::markProtectedObjects):
43+
(JSC::Heap::markTempSortVectors):
44+
(JSC::Heap::markRoots):
45+
* heap/Heap.h:
46+
* heap/MarkStack.cpp:
47+
(JSC::MarkStack::visitChildren):
48+
(JSC::MarkStack::drain):
49+
* heap/MarkStack.h:
50+
(JSC::HeapRootVisitor::HeapRootVisitor):
51+
(JSC::HeapRootVisitor::mark):
52+
(JSC::HeapRootVisitor::visitor):
53+
* heap/MarkedSpace.h:
54+
* runtime/ArgList.cpp:
55+
(JSC::MarkedArgumentBuffer::markLists):
56+
* runtime/ArgList.h:
57+
* runtime/Arguments.cpp:
58+
(JSC::Arguments::visitChildren):
59+
* runtime/Arguments.h:
60+
* runtime/Executable.cpp:
61+
(JSC::EvalExecutable::visitChildren):
62+
(JSC::ProgramExecutable::visitChildren):
63+
(JSC::FunctionExecutable::visitChildren):
64+
* runtime/Executable.h:
65+
* runtime/GetterSetter.cpp:
66+
(JSC::GetterSetter::visitChildren):
67+
* runtime/GetterSetter.h:
68+
(JSC::GetterSetter::createStructure):
69+
* runtime/JSAPIValueWrapper.h:
70+
(JSC::JSAPIValueWrapper::createStructure):
71+
* runtime/JSActivation.cpp:
72+
(JSC::JSActivation::visitChildren):
73+
* runtime/JSActivation.h:
74+
* runtime/JSArray.cpp:
75+
(JSC::JSArray::visitChildren):
76+
* runtime/JSArray.h:
77+
(JSC::JSArray::visitDirect):
78+
* runtime/JSCell.h:
79+
(JSC::JSCell::JSCell::visitChildren):
80+
* runtime/JSFunction.cpp:
81+
(JSC::JSFunction::visitChildren):
82+
* runtime/JSFunction.h:
83+
* runtime/JSGlobalObject.cpp:
84+
(JSC::visitIfNeeded):
85+
(JSC::JSGlobalObject::visitChildren):
86+
* runtime/JSGlobalObject.h:
87+
* runtime/JSONObject.cpp:
88+
* runtime/JSObject.cpp:
89+
(JSC::JSObject::visitChildren):
90+
* runtime/JSObject.h:
91+
(JSC::JSObject::visitDirect):
92+
* runtime/JSPropertyNameIterator.cpp:
93+
(JSC::JSPropertyNameIterator::visitChildren):
94+
* runtime/JSPropertyNameIterator.h:
95+
(JSC::JSPropertyNameIterator::createStructure):
96+
* runtime/JSStaticScopeObject.cpp:
97+
(JSC::JSStaticScopeObject::visitChildren):
98+
* runtime/JSStaticScopeObject.h:
99+
* runtime/JSTypeInfo.h:
100+
(JSC::TypeInfo::TypeInfo):
101+
(JSC::TypeInfo::overridesVisitChildren):
102+
* runtime/JSWrapperObject.cpp:
103+
(JSC::JSWrapperObject::visitChildren):
104+
* runtime/JSWrapperObject.h:
105+
* runtime/JSZombie.h:
106+
(JSC::JSZombie::visitChildren):
107+
* runtime/NativeErrorConstructor.cpp:
108+
(JSC::NativeErrorConstructor::visitChildren):
109+
* runtime/NativeErrorConstructor.h:
110+
* runtime/RegExpObject.cpp:
111+
(JSC::RegExpObject::visitChildren):
112+
* runtime/RegExpObject.h:
113+
* runtime/ScopeChain.cpp:
114+
(JSC::ScopeChainNode::visitChildren):
115+
* runtime/ScopeChain.h:
116+
* runtime/SmallStrings.cpp:
117+
(JSC::SmallStrings::visitChildren):
118+
* runtime/SmallStrings.h:
119+
* runtime/Structure.cpp:
120+
(JSC::Structure::Structure):
121+
(JSC::Structure::visitChildren):
122+
* runtime/Structure.h:
123+
* runtime/StructureChain.cpp:
124+
(JSC::StructureChain::visitChildren):
125+
* runtime/StructureChain.h:
126+
(JSC::StructureChain::createStructure):
127+
1128
2011-04-21 Sheriff Bot <webkit.review.bot@gmail.com>
2129

3130
Unreviewed, rolling out r84548.

‎Source/JavaScriptCore/JavaScriptCore.exp‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ __ZN3JSC13StatementNode6setLocEii
156156
__ZN3JSC14JSGlobalObject10globalExecEv
157157
__ZN3JSC14JSGlobalObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectEj
158158
__ZN3JSC14JSGlobalObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectEj
159-
__ZN3JSC14JSGlobalObject12markChildrenERNS_9MarkStackE
159+
__ZN3JSC14JSGlobalObject13visitChildrenERNS_9MarkStackE
160160
__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj
161161
__ZN3JSC14JSGlobalObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
162162
__ZN3JSC14JSGlobalObject4initEPNS_8JSObjectE
@@ -168,7 +168,7 @@ __ZN3JSC14SamplingThread5startEj
168168
__ZN3JSC14TimeoutChecker10didTimeOutEPNS_9ExecStateE
169169
__ZN3JSC14TimeoutChecker5resetEv
170170
__ZN3JSC14throwTypeErrorEPNS_9ExecStateE
171-
__ZN3JSC15JSWrapperObject12markChildrenERNS_9MarkStackE
171+
__ZN3JSC15JSWrapperObject13visitChildrenERNS_9MarkStackE
172172
__ZN3JSC15WeakHandleOwner26isReachableFromOpaqueRootsENS_6HandleINS_7UnknownEEEPvRNS_9MarkStackE
173173
__ZN3JSC15WeakHandleOwner8finalizeENS_6HandleINS_7UnknownEEEPv
174174
__ZN3JSC15WeakHandleOwnerD2Ev
@@ -252,7 +252,7 @@ __ZN3JSC6JSLock9lockCountEv
252252
__ZN3JSC6JSLockC1EPNS_9ExecStateE
253253
__ZN3JSC6RegExp6createEPNS_12JSGlobalDataERKNS_7UStringENS_11RegExpFlagsE
254254
__ZN3JSC6RegExpD1Ev
255-
__ZN3JSC7JSArray12markChildrenERNS_9MarkStackE
255+
__ZN3JSC7JSArray13visitChildrenERNS_9MarkStackE
256256
__ZN3JSC7JSArray15setSubclassDataEPv
257257
__ZN3JSC7JSArray18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
258258
__ZN3JSC7JSArray6s_infoE
@@ -284,7 +284,7 @@ __ZN3JSC8JSObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPS0_j
284284
__ZN3JSC8JSObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPS0_j
285285
__ZN3JSC8JSObject12lookupGetterEPNS_9ExecStateERKNS_10IdentifierE
286286
__ZN3JSC8JSObject12lookupSetterEPNS_9ExecStateERKNS_10IdentifierE
287-
__ZN3JSC8JSObject12markChildrenERNS_9MarkStackE
287+
__ZN3JSC8JSObject13visitChildrenERNS_9MarkStackE
288288
__ZN3JSC8JSObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
289289
__ZN3JSC8JSObject14deletePropertyEPNS_9ExecStateEj
290290
__ZN3JSC8JSObject15unwrappedObjectEv
@@ -306,7 +306,7 @@ __ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_16WriteBarrierB
306306
__ZN3JSC8JSObject23allocatePropertyStorageEmm
307307
__ZN3JSC8JSObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
308308
__ZN3JSC8JSObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
309-
__ZN3JSC8JSObject3putEPNS_9ExecStateEjNS_7JSValueE
309+
__ZN3JSC8JSObject3putEPNS_9ExecStateEjNS_7JSValueE
310310
__ZN3JSC8JSObject6s_infoE
311311
__ZN3JSC8Profiler13stopProfilingEPNS_9ExecStateERKNS_7UStringE
312312
__ZN3JSC8Profiler14startProfilingEPNS_9ExecStateERKNS_7UStringE

‎Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,10 +237,10 @@ EXPORTS
237237
?lockCount@JSLock@JSC@@SAHXZ
238238
?lookupGetter@JSObject@JSC@@UAE?AVJSValue@2@PAVExecState@2@ABVIdentifier@2@@Z
239239
?lookupSetter@JSObject@JSC@@UAE?AVJSValue@2@PAVExecState@2@ABVIdentifier@2@@Z
240-
?markChildren@JSGlobalObject@JSC@@UAEXAAVMarkStack@2@@Z
241-
?markChildren@JSObject@JSC@@UAEXAAVMarkStack@2@@Z
242-
?markChildren@JSWrapperObject@JSC@@EAEXAAVMarkStack@2@@Z
243-
?markChildren@ScopeChainNode@JSC@@UAEXAAVMarkStack@2@@Z
240+
?visitChildren@JSGlobalObject@JSC@@UAEXAAVMarkStack@2@@Z
241+
?visitChildren@JSObject@JSC@@UAEXAAVMarkStack@2@@Z
242+
?visitChildren@JSWrapperObject@JSC@@EAEXAAVMarkStack@2@@Z
243+
?visitChildren@ScopeChainNode@JSC@@UAEXAAVMarkStack@2@@Z
244244
?materializePropertyMap@Structure@JSC@@AAEXAAVJSGlobalData@2@@Z
245245
?monthFromDayInYear@WTF@@YAHH_N@Z
246246
?msToYear@WTF@@YAHN@Z

‎Source/JavaScriptCore/bytecode/CodeBlock.cpp‎

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,37 +1400,37 @@ CodeBlock::~CodeBlock()
14001400
#endif
14011401
}
14021402

1403-
void CodeBlock::markStructures(MarkStack& markStack, Instruction* vPC) const
1403+
void CodeBlock::visitStructures(SlotVisitor& visitor, Instruction* vPC) const
14041404
{
14051405
Interpreter* interpreter = m_globalData->interpreter;
14061406

14071407
if (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_self) || vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_getter_self) || vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_custom_self)) {
1408-
markStack.append(&vPC[4].u.structure);
1408+
visitor.append(&vPC[4].u.structure);
14091409
return;
14101410
}
14111411
if (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_proto) || vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_getter_proto) || vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_custom_proto)) {
1412-
markStack.append(&vPC[4].u.structure);
1413-
markStack.append(&vPC[5].u.structure);
1412+
visitor.append(&vPC[4].u.structure);
1413+
visitor.append(&vPC[5].u.structure);
14141414
return;
14151415
}
14161416
if (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_chain) || vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_getter_chain) || vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_custom_chain)) {
1417-
markStack.append(&vPC[4].u.structure);
1418-
markStack.append(&vPC[5].u.structureChain);
1417+
visitor.append(&vPC[4].u.structure);
1418+
visitor.append(&vPC[5].u.structureChain);
14191419
return;
14201420
}
14211421
if (vPC[0].u.opcode == interpreter->getOpcode(op_put_by_id_transition)) {
1422-
markStack.append(&vPC[4].u.structure);
1423-
markStack.append(&vPC[5].u.structure);
1424-
markStack.append(&vPC[6].u.structureChain);
1422+
visitor.append(&vPC[4].u.structure);
1423+
visitor.append(&vPC[5].u.structure);
1424+
visitor.append(&vPC[6].u.structureChain);
14251425
return;
14261426
}
14271427
if (vPC[0].u.opcode == interpreter->getOpcode(op_put_by_id_replace)) {
1428-
markStack.append(&vPC[4].u.structure);
1428+
visitor.append(&vPC[4].u.structure);
14291429
return;
14301430
}
14311431
if (vPC[0].u.opcode == interpreter->getOpcode(op_resolve_global) || vPC[0].u.opcode == interpreter->getOpcode(op_resolve_global_dynamic)) {
14321432
if (vPC[3].u.structure)
1433-
markStack.append(&vPC[3].u.structure);
1433+
visitor.append(&vPC[3].u.structure);
14341434
return;
14351435
}
14361436
if ((vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_proto_list))
@@ -1440,7 +1440,7 @@ void CodeBlock::markStructures(MarkStack& markStack, Instruction* vPC) const
14401440
|| (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_custom_proto_list))
14411441
|| (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_custom_self_list))) {
14421442
PolymorphicAccessStructureList* polymorphicStructures = vPC[4].u.polymorphicStructures;
1443-
polymorphicStructures->markAggregate(markStack, vPC[5].u.operand);
1443+
polymorphicStructures->visitAggregate(visitor, vPC[5].u.operand);
14441444
delete polymorphicStructures;
14451445
return;
14461446
}
@@ -1449,48 +1449,48 @@ void CodeBlock::markStructures(MarkStack& markStack, Instruction* vPC) const
14491449
ASSERT(vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id) || vPC[0].u.opcode == interpreter->getOpcode(op_put_by_id) || vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_generic) || vPC[0].u.opcode == interpreter->getOpcode(op_put_by_id_generic) || vPC[0].u.opcode == interpreter->getOpcode(op_get_array_length) || vPC[0].u.opcode == interpreter->getOpcode(op_get_string_length));
14501450
}
14511451

1452-
void EvalCodeCache::markAggregate(MarkStack& markStack)
1452+
void EvalCodeCache::visitAggregate(SlotVisitor& visitor)
14531453
{
14541454
EvalCacheMap::iterator end = m_cacheMap.end();
14551455
for (EvalCacheMap::iterator ptr = m_cacheMap.begin(); ptr != end; ++ptr)
1456-
markStack.append(&ptr->second);
1456+
visitor.append(&ptr->second);
14571457
}
14581458

1459-
void CodeBlock::markAggregate(MarkStack& markStack)
1459+
void CodeBlock::visitAggregate(SlotVisitor& visitor)
14601460
{
1461-
markStack.append(&m_globalObject);
1462-
markStack.append(&m_ownerExecutable);
1461+
visitor.append(&m_globalObject);
1462+
visitor.append(&m_ownerExecutable);
14631463
if (m_rareData)
1464-
m_rareData->m_evalCodeCache.markAggregate(markStack);
1465-
markStack.appendValues(m_constantRegisters.data(), m_constantRegisters.size());
1464+
m_rareData->m_evalCodeCache.visitAggregate(visitor);
1465+
visitor.appendValues(m_constantRegisters.data(), m_constantRegisters.size());
14661466
for (size_t i = 0; i < m_functionExprs.size(); ++i)
1467-
markStack.append(&m_functionExprs[i]);
1467+
visitor.append(&m_functionExprs[i]);
14681468
for (size_t i = 0; i < m_functionDecls.size(); ++i)
1469-
markStack.append(&m_functionDecls[i]);
1469+
visitor.append(&m_functionDecls[i]);
14701470
#if ENABLE(JIT_OPTIMIZE_CALL)
14711471
for (unsigned i = 0; i < numberOfCallLinkInfos(); ++i)
14721472
if (callLinkInfo(i).isLinked())
1473-
markStack.append(&callLinkInfo(i).callee);
1473+
visitor.append(&callLinkInfo(i).callee);
14741474
#endif
14751475
#if ENABLE(INTERPRETER)
14761476
for (size_t size = m_propertyAccessInstructions.size(), i = 0; i < size; ++i)
1477-
markStructures(markStack, &m_instructions[m_propertyAccessInstructions[i]]);
1477+
markStructures(visitor, &m_instructions[m_propertyAccessInstructions[i]]);
14781478
#endif
14791479
#if ENABLE(JIT)
14801480
for (size_t size = m_globalResolveInfos.size(), i = 0; i < size; ++i) {
14811481
if (m_globalResolveInfos[i].structure)
1482-
markStack.append(&m_globalResolveInfos[i].structure);
1482+
visitor.append(&m_globalResolveInfos[i].structure);
14831483
}
14841484

14851485
for (size_t size = m_structureStubInfos.size(), i = 0; i < size; ++i)
1486-
m_structureStubInfos[i].markAggregate(markStack);
1486+
m_structureStubInfos[i].visitAggregate(visitor);
14871487

14881488
for (size_t size = m_methodCallLinkInfos.size(), i = 0; i < size; ++i) {
14891489
if (m_methodCallLinkInfos[i].cachedStructure) {
14901490
// Both members must be filled at the same time
1491-
markStack.append(&m_methodCallLinkInfos[i].cachedStructure);
1491+
visitor.append(&m_methodCallLinkInfos[i].cachedStructure);
14921492
ASSERT(!!m_methodCallLinkInfos[i].cachedPrototypeStructure);
1493-
markStack.append(&m_methodCallLinkInfos[i].cachedPrototypeStructure);
1493+
visitor.append(&m_methodCallLinkInfos[i].cachedPrototypeStructure);
14941494
}
14951495
}
14961496
#endif

‎Source/JavaScriptCore/bytecode/CodeBlock.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ namespace JSC {
211211
public:
212212
virtual ~CodeBlock();
213213

214-
void markAggregate(MarkStack&);
214+
void visitAggregate(SlotVisitor&);
215215

216216
static void dumpStatistics();
217217

@@ -481,7 +481,7 @@ namespace JSC {
481481
void printGetByIdOp(ExecState*, int location, Vector<Instruction>::const_iterator&, const char* op) const;
482482
void printPutByIdOp(ExecState*, int location, Vector<Instruction>::const_iterator&, const char* op) const;
483483
#endif
484-
void markStructures(MarkStack&, Instruction* vPC) const;
484+
void visitStructures(SlotVisitor&, Instruction* vPC) const;
485485

486486
void createRareDataIfNecessary()
487487
{

‎Source/JavaScriptCore/bytecode/EvalCodeCache.h‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
namespace JSC {
4343

4444
class MarkStack;
45+
typedef MarkStack SlotVisitor;
4546

4647
class EvalCodeCache {
4748
public:
@@ -67,7 +68,7 @@ namespace JSC {
6768

6869
bool isEmpty() const { return m_cacheMap.isEmpty(); }
6970

70-
void markAggregate(MarkStack&);
71+
void visitAggregate(SlotVisitor&);
7172

7273
private:
7374
static const unsigned maxCacheableSourceLength = 256;

0 commit comments

Comments
 (0)