Changeset 89069 in webkit


Ignore:
Timestamp:
Jun 16, 2011 3:01:43 PM (13 years ago)
Author:
ggaren@apple.com
Message:

2011-06-16 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.

Introduced SlotVisitor into the project
https://bugs.webkit.org/show_bug.cgi?id=62820


This resolves a class vs typedef forward declaration issue, and gives all
exported symbols the correct names.

  • bytecode/EvalCodeCache.h:
  • heap/HandleHeap.h:
  • heap/Heap.cpp: (JSC::Heap::Heap): (JSC::Heap::markRoots):
  • heap/Heap.h:
  • heap/HeapRootVisitor.h: Replaced MarkStack with SlotVisitor. Now no clients operate on a MarkStack.
  • heap/MarkStack.cpp: (JSC::SlotVisitor::visitChildren): (JSC::SlotVisitor::drain):
  • heap/SlotVisitor.h: Added. (JSC::SlotVisitor::SlotVisitor): Used 'protected' and a little cheesy inheritance to give SlotVisitor all the attributes of MarkStack without making this change giant. Over time, we will move more behavior into SlotVisitor and its subclasses.
  • heap/MarkStack.h:
  • heap/NewSpace.h: Replaced MarkStack with SlotVisitor. Now no clients operate on a MarkStack.
  • runtime/ArgList.h:
  • runtime/JSCell.h:
  • runtime/JSObject.h:
  • runtime/ScopeChain.h:
  • runtime/SmallStrings.h:
  • runtime/Structure.h: Replaced MarkStack with SlotVisitor. Now no clients operate on a MarkStack.

2011-06-16 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.

Introduced SlotVisitor into the project
https://bugs.webkit.org/show_bug.cgi?id=62820

This resolves a class vs typedef forward declaration issue, and gives all
exported symbols the correct names.

  • dom/EventListener.h:
  • dom/Node.h:
  • dom/NodeFilterCondition.h:
Location:
trunk/Source
Files:
1 added
27 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/CMakeLists.txt

    r88519 r89069  
    4545    heap/Heap.cpp
    4646    heap/HandleHeap.cpp
     47    heap/SlotVisitor.cpp
    4748    heap/HandleStack.cpp
    4849    heap/MachineStackMarker.cpp
  • trunk/Source/JavaScriptCore/ChangeLog

    r89058 r89069  
     12011-06-16  Geoffrey Garen  <ggaren@apple.com>
     2
     3        Reviewed by Oliver Hunt.
     4
     5        Introduced SlotVisitor into the project
     6        https://bugs.webkit.org/show_bug.cgi?id=62820
     7       
     8        This resolves a class vs typedef forward declaration issue, and gives all
     9        exported symbols the correct names.
     10
     11        * CMakeLists.txt:
     12        * GNUmakefile.list.am:
     13        * JavaScriptCore.exp:
     14        * JavaScriptCore.gypi:
     15        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
     16        * JavaScriptCore.xcodeproj/project.pbxproj: Build!
     17
     18        * bytecode/EvalCodeCache.h:
     19        * heap/HandleHeap.h:
     20        * heap/Heap.cpp:
     21        (JSC::Heap::Heap):
     22        (JSC::Heap::markRoots):
     23        * heap/Heap.h:
     24        * heap/HeapRootVisitor.h: Replaced MarkStack with SlotVisitor. Now no
     25        clients operate on a MarkStack.
     26
     27        * heap/MarkStack.cpp:
     28        (JSC::SlotVisitor::visitChildren):
     29        (JSC::SlotVisitor::drain):
     30        * heap/SlotVisitor.h: Added.
     31        (JSC::SlotVisitor::SlotVisitor): Used 'protected' and a little cheesy
     32        inheritance to give SlotVisitor all the attributes of MarkStack without
     33        making this change giant. Over time, we will move more behavior into
     34        SlotVisitor and its subclasses.
     35
     36        * heap/MarkStack.h:
     37        * heap/NewSpace.h: Replaced MarkStack with SlotVisitor. Now no
     38        clients operate on a MarkStack.
     39
     40        * runtime/ArgList.h:
     41        * runtime/JSCell.h:
     42        * runtime/JSObject.h:
     43        * runtime/ScopeChain.h:
     44        * runtime/SmallStrings.h:
     45        * runtime/Structure.h: Replaced MarkStack with SlotVisitor. Now no
     46        clients operate on a MarkStack.
     47
    1482011-06-15  Oliver Hunt  <oliver@apple.com>
    249
  • trunk/Source/JavaScriptCore/GNUmakefile.list.am

    r88674 r89069  
    127127        Source/JavaScriptCore/heap/HandleHeap.cpp \
    128128        Source/JavaScriptCore/heap/HandleHeap.h \
     129        Source/JavaScriptCore/heap/SlotVisitor.h \
    129130        Source/JavaScriptCore/heap/HandleStack.cpp \
    130131        Source/JavaScriptCore/heap/HandleStack.h \
  • trunk/Source/JavaScriptCore/JavaScriptCore.exp

    r88587 r89069  
    156156__ZN3JSC14JSGlobalObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectEj
    157157__ZN3JSC14JSGlobalObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectEj
    158 __ZN3JSC14JSGlobalObject13visitChildrenERNS_9MarkStackE
     158__ZN3JSC14JSGlobalObject13visitChildrenERNS_11SlotVisitorE
    159159__ZN3JSC14JSGlobalObject16addStaticGlobalsEPNS0_18GlobalPropertyInfoEi
    160160__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj
     
    173173__ZN3JSC14TimeoutChecker5resetEv
    174174__ZN3JSC14throwTypeErrorEPNS_9ExecStateE
    175 __ZN3JSC15JSWrapperObject13visitChildrenERNS_9MarkStackE
    176 __ZN3JSC15WeakHandleOwner26isReachableFromOpaqueRootsENS_6HandleINS_7UnknownEEEPvRNS_9MarkStackE
     175__ZN3JSC15JSWrapperObject13visitChildrenERNS_11SlotVisitorE
     176__ZN3JSC15WeakHandleOwner26isReachableFromOpaqueRootsENS_6HandleINS_7UnknownEEEPvRNS_11SlotVisitorE
    177177__ZN3JSC15WeakHandleOwner8finalizeENS_6HandleINS_7UnknownEEEPv
    178178__ZN3JSC15WeakHandleOwnerD2Ev
     
    262262__ZN3JSC6RegExp6createEPNS_12JSGlobalDataERKNS_7UStringENS_11RegExpFlagsE
    263263__ZN3JSC6RegExpD1Ev
    264 __ZN3JSC7JSArray13visitChildrenERNS_9MarkStackE
     264__ZN3JSC7JSArray13visitChildrenERNS_11SlotVisitorE
    265265__ZN3JSC7JSArray15setSubclassDataEPv
    266266__ZN3JSC7JSArray18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
     
    294294__ZN3JSC8JSObject12lookupGetterEPNS_9ExecStateERKNS_10IdentifierE
    295295__ZN3JSC8JSObject12lookupSetterEPNS_9ExecStateERKNS_10IdentifierE
    296 __ZN3JSC8JSObject13visitChildrenERNS_9MarkStackE
     296__ZN3JSC8JSObject13visitChildrenERNS_11SlotVisitorE
    297297__ZN3JSC8JSObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
    298298__ZN3JSC8JSObject14deletePropertyEPNS_9ExecStateEj
  • trunk/Source/JavaScriptCore/JavaScriptCore.gypi

    r88519 r89069  
    3131            'heap/Handle.h',
    3232            'heap/HandleHeap.h',
     33            'heap/SlotVisitor.h',
    3334            'heap/HandleStack.h',
    3435            'heap/HandleTypes.h',
  • trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def

    r88587 r89069  
    228228    ?isHostFunctionNonInline@JSFunction@JSC@@ABE_NXZ
    229229    ?isMainThread@WTF@@YA_NXZ
    230     ?isReachableFromOpaqueRoots@WeakHandleOwner@JSC@@UAE_NV?$Handle@W4Unknown@JSC@@@2@PAXAAVMarkStack@2@@Z
     230    ?isReachableFromOpaqueRoots@WeakHandleOwner@JSC@@UAE_NV?$Handle@W4Unknown@JSC@@@2@PAXAAVSlotVisitor@2@@Z
    231231    ?isValidAllocation@Heap@JSC@@AAE_NI@Z
    232232    ?isValidCallee@JSValue@JSC@@QAE_NXZ
     
    366366    ?unwrappedObject@JSObject@JSC@@UAEPAV12@XZ
    367367    ?utf8@UString@JSC@@QBE?AVCString@WTF@@_N@Z
    368     ?visitChildren@JSGlobalObject@JSC@@UAEXAAVMarkStack@2@@Z
    369     ?visitChildren@JSObject@JSC@@UAEXAAVMarkStack@2@@Z
    370     ?visitChildren@JSWrapperObject@JSC@@EAEXAAVMarkStack@2@@Z
    371     ?visitChildren@ScopeChainNode@JSC@@UAEXAAVMarkStack@2@@Z
     368    ?visitChildren@JSDOMGlobalObject@WebCore@@UAEXAAVSlotVisitor@JSC@@@Z
     369    ?visitChildren@JSObject@JSC@@UAEXAAVSlotVisitor@2@@Z
     370    ?visitChildren@JSWrapperObject@JSC@@EAEXAAVSlotVisitor@2@@Z
     371    ?visitChildren@ScopeChainNode@JSC@@UAEXAAVSlotVisitor@2@@Z
    372372    ?vtableAnchor@InternalFunction@JSC@@EAEXXZ
    373373    ?wait@ThreadCondition@WTF@@QAEXAAVMutex@2@@Z
  • trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r88519 r89069  
    167167                1482B74E0A43032800517CFC /* JSStringRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1482B74C0A43032800517CFC /* JSStringRef.cpp */; };
    168168                1482B7E40A43076000517CFC /* JSObjectRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1482B7E20A43076000517CFC /* JSObjectRef.cpp */; };
     169                148B572813AA955100DBC90A /* SlotVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 148B572713AA955100DBC90A /* SlotVisitor.h */; settings = {ATTRIBUTES = (Private, ); }; };
    169170                148CD1D8108CF902008163C6 /* JSContextRefPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 148CD1D7108CF902008163C6 /* JSContextRefPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
    170171                148F21AA107EC53A0042EC2C /* BytecodeGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 969A07200ED1CE3300F1F681 /* BytecodeGenerator.cpp */; };
     
    795796                148A1626095D16BB00666D0D /* ListRefPtr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ListRefPtr.h; sourceTree = "<group>"; };
    796797                148A1ECD0D10C23B0069A47C /* RefPtrHashMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RefPtrHashMap.h; sourceTree = "<group>"; };
     798                148B572713AA955100DBC90A /* SlotVisitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SlotVisitor.h; path = ../../../webkit/Source/JavaScriptCore/heap/SlotVisitor.h; sourceTree = SOURCE_ROOT; };
    797799                148CD1D7108CF902008163C6 /* JSContextRefPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSContextRefPrivate.h; sourceTree = "<group>"; };
    798800                149559ED0DDCDDF700648087 /* DebuggerCallFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DebuggerCallFrame.cpp; sourceTree = "<group>"; };
     
    15151517                                142A1D8113A19C84009DA5FE /* OldSpace.cpp */,
    15161518                                142A1D8213A19C84009DA5FE /* OldSpace.h */,
     1519                                148B572713AA955100DBC90A /* SlotVisitor.h */,
    15171520                                142E3132134FF0A600AFADB5 /* Strong.h */,
    15181521                                141448CC13A1783700F5BA1A /* TinyBloomFilter.h */,
     
    25672570                                141448CD13A1783700F5BA1A /* TinyBloomFilter.h in Headers */,
    25682571                                142A1D8413A19C84009DA5FE /* OldSpace.h in Headers */,
     2572                                148B572813AA955100DBC90A /* SlotVisitor.h in Headers */,
    25692573                        );
    25702574                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/JavaScriptCore/bytecode/EvalCodeCache.h

    r84556 r89069  
    4343
    4444    class MarkStack;
    45     typedef MarkStack SlotVisitor;
     45    class SlotVisitor;
    4646
    4747    class EvalCodeCache {
  • trunk/Source/JavaScriptCore/heap/HandleHeap.h

    r88911 r89069  
    4040class JSValue;
    4141class MarkStack;
    42 typedef MarkStack SlotVisitor;
     42class SlotVisitor;
    4343
    4444class WeakHandleOwner {
  • trunk/Source/JavaScriptCore/heap/Heap.cpp

    r88504 r89069  
    247247    , m_activityCallback(DefaultGCActivityCallback::create(this))
    248248    , m_machineThreads(this)
    249     , m_markStack(globalData->jsArrayVPtr)
     249    , m_slotVisitor(globalData->jsArrayVPtr)
    250250    , m_handleHeap(globalData)
    251251    , m_globalData(globalData)
     
    415415    clearMarks();
    416416
    417     MarkStack& visitor = m_markStack;
     417    SlotVisitor& visitor = m_slotVisitor;
    418418    HeapRootVisitor heapRootVisitor(visitor);
    419419
  • trunk/Source/JavaScriptCore/heap/Heap.h

    r88504 r89069  
    2525#include "HandleHeap.h"
    2626#include "HandleStack.h"
    27 #include "MarkStack.h"
     27#include "SlotVisitor.h"
    2828#include "MarkedBlockSet.h"
    2929#include "NewSpace.h"
     
    4141    class JSValue;
    4242    class LiveObjectIterator;
    43     class MarkStack;
    4443    class MarkedArgumentBuffer;
    4544    class RegisterFile;
    4645    class UString;
    4746    class WeakGCHandlePool;
    48     typedef MarkStack SlotVisitor;
     47    class SlotVisitor;
    4948
    5049    typedef std::pair<JSValue, UString> ValueStringPair;
     
    156155       
    157156        MachineThreads m_machineThreads;
    158         MarkStack m_markStack;
     157        SlotVisitor m_slotVisitor;
    159158        HandleHeap m_handleHeap;
    160159        HandleStack m_handleStack;
  • trunk/Source/JavaScriptCore/heap/HeapRootVisitor.h

    r88324 r89069  
    2727#define HeapRootVisitor_h
    2828
    29 #include "MarkStack.h"
     29#include "SlotVisitor.h"
    3030
    3131namespace JSC {
  • trunk/Source/JavaScriptCore/heap/MarkStack.cpp

    r87198 r89069  
    5252}
    5353
    54 inline void MarkStack::visitChildren(JSCell* cell)
     54inline void SlotVisitor::visitChildren(JSCell* cell)
    5555{
    5656    ASSERT(Heap::isMarked(cell));
     
    8080}
    8181
    82 void MarkStack::drain()
     82void SlotVisitor::drain()
    8383{
    8484#if !ASSERT_DISABLED
  • trunk/Source/JavaScriptCore/heap/MarkStack.h

    r87316 r89069  
    9494        int opaqueRootCount();
    9595
    96         void drain();
    9796        void reset();
    9897
    99     private:
     98    protected:
    10099#if ENABLE(GC_VALIDATION)
    101100        static void validateSet(JSValue*, size_t);
     
    109108        void internalAppend(JSCell*);
    110109        void internalAppend(JSValue);
    111         void visitChildren(JSCell*);
    112110
    113111        void* m_jsArrayVPtr;
     
    273271    }
    274272
    275     typedef MarkStack SlotVisitor;
     273    class SlotVisitor;
    276274
    277275} // namespace JSC
  • trunk/Source/JavaScriptCore/heap/NewSpace.h

    r88519 r89069  
    4242    class MarkStack;
    4343    class WeakGCHandle;
    44     typedef MarkStack SlotVisitor;
     44    class SlotVisitor;
    4545
    4646    class NewSpace {
  • trunk/Source/JavaScriptCore/runtime/ArgList.h

    r86209 r89069  
    3232
    3333    class MarkStack;
    34     typedef MarkStack SlotVisitor;
     34    class SlotVisitor;
    3535
    3636    class MarkedArgumentBuffer {
  • trunk/Source/JavaScriptCore/runtime/JSCell.h

    r88587 r89069  
    3030#include "JSLock.h"
    3131#include "JSValueInlineMethods.h"
    32 #include "MarkStack.h"
     32#include "SlotVisitor.h"
    3333#include "WriteBarrier.h"
    3434#include <wtf/Noncopyable.h>
  • trunk/Source/JavaScriptCore/runtime/JSObject.h

    r87826 r89069  
    3030#include "CallFrame.h"
    3131#include "JSCell.h"
    32 #include "MarkStack.h"
    3332#include "PropertySlot.h"
    3433#include "PutPropertySlot.h"
  • trunk/Source/JavaScriptCore/runtime/ScopeChain.h

    r86499 r89069  
    3333    class MarkStack;
    3434    class ScopeChainIterator;
    35     typedef MarkStack SlotVisitor;
     35    class SlotVisitor;
    3636   
    3737    class ScopeChainNode : public JSCell {
  • trunk/Source/JavaScriptCore/runtime/SmallStrings.h

    r87448 r89069  
    3838    class MarkStack;
    3939    class SmallStringsStorage;
    40     typedef MarkStack SlotVisitor;
     40    class SlotVisitor;
    4141
    4242    static const unsigned maxSingleCharacterString = 0xFF;
  • trunk/Source/JavaScriptCore/runtime/Structure.h

    r86499 r89069  
    4949    class PropertyNameArrayData;
    5050    class StructureChain;
    51     typedef MarkStack SlotVisitor;
     51    class SlotVisitor;
    5252
    5353    struct ClassInfo;
  • trunk/Source/WebCore/ChangeLog

    r89067 r89069  
     12011-06-16  Geoffrey Garen  <ggaren@apple.com>
     2
     3        Reviewed by Oliver Hunt.
     4
     5        Introduced SlotVisitor into the project
     6        https://bugs.webkit.org/show_bug.cgi?id=62820
     7
     8        This resolves a class vs typedef forward declaration issue, and gives all
     9        exported symbols the correct names.
     10
     11        * dom/EventListener.h:
     12        * dom/Node.h:
     13        * dom/NodeFilterCondition.h:
     14
    1152011-06-16  Abhishek Arya  <inferno@chromium.org>
    216
  • trunk/Source/WebCore/bindings/js/JSCSSRuleListCustom.cpp

    r84699 r89069  
    3636namespace WebCore {
    3737
    38 bool JSCSSRuleListOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, MarkStack& markStack)
     38bool JSCSSRuleListOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor)
    3939{
    4040    JSCSSRuleList* jsCSSRuleList = static_cast<JSCSSRuleList*>(handle.get().asCell());
     
    4242        return false;
    4343    if (StyleList* styleList = jsCSSRuleList->impl()->styleList())
    44         return markStack.containsOpaqueRoot(root(styleList));
     44        return visitor.containsOpaqueRoot(root(styleList));
    4545    if (CSSRule* cssRule = jsCSSRuleList->impl()->item(0))
    46         return markStack.containsOpaqueRoot(root(cssRule));
     46        return visitor.containsOpaqueRoot(root(cssRule));
    4747    return false;
    4848}
  • trunk/Source/WebCore/bindings/js/JSCSSValueCustom.cpp

    r85127 r89069  
    4646namespace WebCore {
    4747
    48 bool JSCSSValueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void* context, MarkStack& markStack)
     48bool JSCSSValueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void* context, SlotVisitor& visitor)
    4949{
    5050    JSCSSValue* jsCSSValue = static_cast<JSCSSValue*>(handle.get().asCell());
     
    5555    if (!root)
    5656        return false;
    57     return markStack.containsOpaqueRoot(root);
     57    return visitor.containsOpaqueRoot(root);
    5858}
    5959
  • trunk/Source/WebCore/dom/EventListener.h

    r84556 r89069  
    2626namespace JSC {
    2727    class JSObject;
    28     class MarkStack;
    29     typedef MarkStack SlotVisitor;
     28    class SlotVisitor;
    3029}
    3130
  • trunk/Source/WebCore/dom/Node.h

    r88570 r89069  
    3737namespace JSC {
    3838    class JSGlobalData;
    39     class MarkStack;
    40     typedef MarkStack SlotVisitor;
     39    class SlotVisitor;
    4140}
    4241#endif
  • trunk/Source/WebCore/dom/NodeFilterCondition.h

    r84556 r89069  
    3030
    3131namespace JSC {
    32     class MarkStack;
    33     typedef MarkStack SlotVisitor;
     32
     33class SlotVisitor;
     34
    3435}
    3536
Note: See TracChangeset for help on using the changeset viewer.