Changeset 247832 in webkit


Ignore:
Timestamp:
Jul 25, 2019 11:28:53 AM (5 years ago)
Author:
ysuzuki@apple.com
Message:

[JSC] Make visitChildren implementation more idiomatic
https://bugs.webkit.org/show_bug.cgi?id=200121

Reviewed by Mark Lam.

This patch makes visitChildren implementations more idiomatic: cast, assert, and calling Base::visitChildren.
While this does not find interesting issues, it is still nice to have consistent implementations.
StructureChain::visitChildren missed Base::visitChildren, but it does not have much effect since StructureChain
is immortal cell.

  • bytecode/ExecutableToCodeBlockEdge.cpp:

(JSC::ExecutableToCodeBlockEdge::visitChildren):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::visitChildren):

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::visitChildren):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::visitChildren):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::visitChildren):

  • runtime/JSImmutableButterfly.cpp:

(JSC::JSImmutableButterfly::visitChildren):

  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::visitChildren):

  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::visitChildren):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::visitChildren):

  • runtime/JSString.cpp:

(JSC::JSString::visitChildren):

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::visitChildren):

  • runtime/StructureChain.cpp:

(JSC::StructureChain::visitChildren):

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::visitChildren):

  • tools/JSDollarVM.cpp:

(JSC::Root::visitChildren):
(JSC::ImpureGetter::visitChildren):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::visitChildren):

Location:
trunk/Source/JavaScriptCore
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r247819 r247832  
     12019-07-25  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        [JSC] Make visitChildren implementation more idiomatic
     4        https://bugs.webkit.org/show_bug.cgi?id=200121
     5
     6        Reviewed by Mark Lam.
     7
     8        This patch makes visitChildren implementations more idiomatic: cast, assert, and calling Base::visitChildren.
     9        While this does not find interesting issues, it is still nice to have consistent implementations.
     10        StructureChain::visitChildren missed Base::visitChildren, but it does not have much effect since StructureChain
     11        is immortal cell.
     12
     13        * bytecode/ExecutableToCodeBlockEdge.cpp:
     14        (JSC::ExecutableToCodeBlockEdge::visitChildren):
     15        * runtime/AbstractModuleRecord.cpp:
     16        (JSC::AbstractModuleRecord::visitChildren):
     17        * runtime/FunctionRareData.cpp:
     18        (JSC::FunctionRareData::visitChildren):
     19        * runtime/JSArrayBufferView.cpp:
     20        (JSC::JSArrayBufferView::visitChildren):
     21        * runtime/JSGenericTypedArrayViewInlines.h:
     22        (JSC::JSGenericTypedArrayView<Adaptor>::visitChildren):
     23        * runtime/JSImmutableButterfly.cpp:
     24        (JSC::JSImmutableButterfly::visitChildren):
     25        * runtime/JSModuleEnvironment.cpp:
     26        (JSC::JSModuleEnvironment::visitChildren):
     27        * runtime/JSModuleRecord.cpp:
     28        (JSC::JSModuleRecord::visitChildren):
     29        * runtime/JSPropertyNameEnumerator.cpp:
     30        (JSC::JSPropertyNameEnumerator::visitChildren):
     31        * runtime/JSString.cpp:
     32        (JSC::JSString::visitChildren):
     33        * runtime/SparseArrayValueMap.cpp:
     34        (JSC::SparseArrayValueMap::visitChildren):
     35        * runtime/StructureChain.cpp:
     36        (JSC::StructureChain::visitChildren):
     37        * runtime/SymbolTable.cpp:
     38        (JSC::SymbolTable::visitChildren):
     39        * tools/JSDollarVM.cpp:
     40        (JSC::Root::visitChildren):
     41        (JSC::ImpureGetter::visitChildren):
     42        * wasm/js/WebAssemblyModuleRecord.cpp:
     43        (JSC::WebAssemblyModuleRecord::visitChildren):
     44
    1452019-07-25  Ross Kirsling  <ross.kirsling@sony.com>
    246
  • trunk/Source/JavaScriptCore/bytecode/ExecutableToCodeBlockEdge.cpp

    r244019 r247832  
    5656    VM& vm = visitor.vm();
    5757    ExecutableToCodeBlockEdge* edge = jsCast<ExecutableToCodeBlockEdge*>(cell);
     58    ASSERT_GC_OBJECT_INHERITS(cell, info());
    5859    Base::visitChildren(cell, visitor);
    5960
  • trunk/Source/JavaScriptCore/runtime/AbstractModuleRecord.cpp

    r242776 r247832  
    7272{
    7373    AbstractModuleRecord* thisObject = jsCast<AbstractModuleRecord*>(cell);
     74    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    7475    Base::visitChildren(thisObject, visitor);
    7576    visitor.append(thisObject->m_moduleEnvironment);
  • trunk/Source/JavaScriptCore/runtime/FunctionRareData.cpp

    r233245 r247832  
    5555{
    5656    FunctionRareData* rareData = jsCast<FunctionRareData*>(cell);
     57    ASSERT_GC_OBJECT_INHERITS(cell, info());
    5758    Base::visitChildren(cell, visitor);
    5859
  • trunk/Source/JavaScriptCore/runtime/JSArrayBufferView.cpp

    r246368 r247832  
    165165{
    166166    JSArrayBufferView* thisObject = jsCast<JSArrayBufferView*>(cell);
     167    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    167168    Base::visitChildren(cell, visitor);
    168169
  • trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h

    r246368 r247832  
    517517{
    518518    JSGenericTypedArrayView* thisObject = jsCast<JSGenericTypedArrayView*>(cell);
     519    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    519520    Base::visitChildren(thisObject, visitor);
    520521
  • trunk/Source/JavaScriptCore/runtime/JSImmutableButterfly.cpp

    r232954 r247832  
    3535void JSImmutableButterfly::visitChildren(JSCell* cell, SlotVisitor& visitor)
    3636{
     37    ASSERT_GC_OBJECT_INHERITS(cell, info());
    3738    Base::visitChildren(cell, visitor);
    3839    if (!hasContiguous(cell->indexingType())) {
  • trunk/Source/JavaScriptCore/runtime/JSModuleEnvironment.cpp

    r236697 r247832  
    7171{
    7272    JSModuleEnvironment* thisObject = jsCast<JSModuleEnvironment*>(cell);
     73    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    7374    Base::visitChildren(thisObject, visitor);
    7475    visitor.appendValues(thisObject->variables(), thisObject->symbolTable()->scopeSize());
  • trunk/Source/JavaScriptCore/runtime/JSModuleRecord.cpp

    r245040 r247832  
    7575{
    7676    JSModuleRecord* thisObject = jsCast<JSModuleRecord*>(cell);
     77    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    7778    Base::visitChildren(thisObject, visitor);
    7879    visitor.append(thisObject->m_moduleProgramExecutable);
  • trunk/Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.cpp

    r235742 r247832  
    8888void JSPropertyNameEnumerator::visitChildren(JSCell* cell, SlotVisitor& visitor)
    8989{
     90    JSPropertyNameEnumerator* thisObject = jsCast<JSPropertyNameEnumerator*>(cell);
     91    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    9092    Base::visitChildren(cell, visitor);
    91     JSPropertyNameEnumerator* thisObject = jsCast<JSPropertyNameEnumerator*>(cell);
    9293    auto locker = holdLock(thisObject->cellLock());
    9394    for (auto& propertyName : thisObject->m_propertyNames)
  • trunk/Source/JavaScriptCore/runtime/JSString.cpp

    r246490 r247832  
    114114{
    115115    JSString* thisObject = asString(cell);
     116    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    116117    Base::visitChildren(thisObject, visitor);
    117118   
  • trunk/Source/JavaScriptCore/runtime/SparseArrayValueMap.cpp

    r236900 r247832  
    215215void SparseArrayValueMap::visitChildren(JSCell* cell, SlotVisitor& visitor)
    216216{
     217    SparseArrayValueMap* thisObject = jsCast<SparseArrayValueMap*>(cell);
     218    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    217219    Base::visitChildren(cell, visitor);
    218     SparseArrayValueMap* thisObject = jsCast<SparseArrayValueMap*>(cell);
    219220    {
    220221        auto locker = holdLock(thisObject->cellLock());
  • trunk/Source/JavaScriptCore/runtime/StructureChain.cpp

    r217108 r247832  
    4949    StructureChain* thisObject = jsCast<StructureChain*>(cell);
    5050    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
     51    Base::visitChildren(thisObject, visitor);
    5152    if (WriteBarrier<Structure>* vector = thisObject->m_vector.get()) {
    5253        size_t i = 0;
  • trunk/Source/JavaScriptCore/runtime/SymbolTable.cpp

    r246073 r247832  
    9696{
    9797    SymbolTable* thisSymbolTable = jsCast<SymbolTable*>(thisCell);
     98    ASSERT_GC_OBJECT_INHERITS(thisSymbolTable, info());
    9899    Base::visitChildren(thisSymbolTable, visitor);
    99100
  • trunk/Source/JavaScriptCore/tools/JSDollarVM.cpp

    r245040 r247832  
    223223    static void visitChildren(JSCell* thisObject, SlotVisitor& visitor)
    224224    {
     225        ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    225226        Base::visitChildren(thisObject, visitor);
    226227        visitor.addOpaqueRoot(thisObject);
     
    326327    static void visitChildren(JSCell* cell, SlotVisitor& visitor)
    327328    {
     329        ASSERT_GC_OBJECT_INHERITS(cell, info());
    328330        Base::visitChildren(cell, visitor);
    329331        ImpureGetter* thisObject = jsCast<ImpureGetter*>(cell);
  • trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp

    r246589 r247832  
    8282{
    8383    WebAssemblyModuleRecord* thisObject = jsCast<WebAssemblyModuleRecord*>(cell);
     84    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    8485    Base::visitChildren(thisObject, visitor);
    8586    visitor.append(thisObject->m_instance);
Note: See TracChangeset for help on using the changeset viewer.