Ignore:
Timestamp:
Aug 21, 2013, 4:10:38 PM (12 years ago)
Author:
[email protected]
Message:

Rename/refactor setButterfly/setStructure
https://bugs.webkit.org/show_bug.cgi?id=120138

Reviewed by Geoffrey Garen.

setButterfly becomes setStructureAndButterfly.

Also removed the Butterfly* argument from setStructure and just implicitly
used m_butterfly internally since that's what every single client of setStructure
was doing already.

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):

  • runtime/JSObject.cpp:

(JSC::JSObject::notifyPresenceOfIndexedAccessors):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToContiguous):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::genericConvertDoubleToContiguous):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::switchToSlowPutArrayStorage):
(JSC::JSObject::setPrototype):
(JSC::JSObject::putDirectAccessor):
(JSC::JSObject::seal):
(JSC::JSObject::freeze):
(JSC::JSObject::preventExtensions):
(JSC::JSObject::reifyStaticFunctionsForDelete):
(JSC::JSObject::removeDirect):

  • runtime/JSObject.h:

(JSC::JSObject::setStructureAndButterfly):
(JSC::JSObject::setStructure):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::setStructureAndReallocateStorageIfNecessary):
(JSC::JSObject::putDirectWithoutTransition):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/runtime/JSObject.cpp

    r154422 r154426  
    584584        return;
    585585   
    586     setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AddIndexedAccessors), m_butterfly);
     586    setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AddIndexedAccessors));
    587587   
    588588    if (!vm.prototypeMap.isPrototype(this))
     
    612612    Butterfly* newButterfly = createInitialIndexedStorage(vm, length, sizeof(EncodedJSValue));
    613613    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), AllocateUndecided);
    614     setButterfly(vm, newButterfly, newStructure);
     614    setStructureAndButterfly(vm, newStructure, newButterfly);
    615615    return newButterfly;
    616616}
     
    620620    Butterfly* newButterfly = createInitialIndexedStorage(vm, length, sizeof(EncodedJSValue));
    621621    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), AllocateInt32);
    622     setButterfly(vm, newButterfly, newStructure);
     622    setStructureAndButterfly(vm, newStructure, newButterfly);
    623623    return newButterfly->contiguousInt32();
    624624}
     
    630630        newButterfly->contiguousDouble()[i] = QNaN;
    631631    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), AllocateDouble);
    632     setButterfly(vm, newButterfly, newStructure);
     632    setStructureAndButterfly(vm, newStructure, newButterfly);
    633633    return newButterfly->contiguousDouble();
    634634}
     
    638638    Butterfly* newButterfly = createInitialIndexedStorage(vm, length, sizeof(EncodedJSValue));
    639639    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), AllocateContiguous);
    640     setButterfly(vm, newButterfly, newStructure);
     640    setStructureAndButterfly(vm, newStructure, newButterfly);
    641641    return newButterfly->contiguous();
    642642}
     
    658658    result->m_indexBias = 0;
    659659    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), structure()->suggestedArrayStorageTransition());
    660     setButterfly(vm, newButterfly, newStructure);
     660    setStructureAndButterfly(vm, newStructure, newButterfly);
    661661    return result;
    662662}
     
    670670{
    671671    ASSERT(hasUndecided(structure()->indexingType()));
    672     setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateInt32), m_butterfly);
     672    setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateInt32));
    673673    return m_butterfly->contiguousInt32();
    674674}
     
    681681        m_butterfly->contiguousDouble()[i] = QNaN;
    682682   
    683     setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateDouble), m_butterfly);
     683    setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateDouble));
    684684    return m_butterfly->contiguousDouble();
    685685}
     
    688688{
    689689    ASSERT(hasUndecided(structure()->indexingType()));
    690     setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateContiguous), m_butterfly);
     690    setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateContiguous));
    691691    return m_butterfly->contiguous();
    692692}
     
    724724   
    725725    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), transition);
    726     setButterfly(vm, storage->butterfly(), newStructure);
     726    setStructureAndButterfly(vm, newStructure, storage->butterfly());
    727727    return storage;
    728728}
     
    754754    }
    755755   
    756     setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateDouble), m_butterfly);
     756    setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateDouble));
    757757    return m_butterfly->contiguousDouble();
    758758}
     
    762762    ASSERT(hasInt32(structure()->indexingType()));
    763763   
    764     setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateContiguous), m_butterfly);
     764    setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateContiguous));
    765765    return m_butterfly->contiguous();
    766766}
     
    780780   
    781781    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), transition);
    782     setButterfly(vm, newStorage->butterfly(), newStructure);
     782    setStructureAndButterfly(vm, newStructure, newStorage->butterfly());
    783783    return newStorage;
    784784}
     
    820820    }
    821821   
    822     setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateContiguous), m_butterfly);
     822    setStructure(vm, Structure::nonPropertyTransition(vm, structure(), AllocateContiguous));
    823823    return m_butterfly->contiguous();
    824824}
     
    848848   
    849849    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), transition);
    850     setButterfly(vm, newStorage->butterfly(), newStructure);
     850    setStructureAndButterfly(vm, newStructure, newStorage->butterfly());
    851851    return newStorage;
    852852}
     
    876876   
    877877    Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), transition);
    878     setButterfly(vm, newStorage->butterfly(), newStructure);
     878    setStructureAndButterfly(vm, newStructure, newStorage->butterfly());
    879879    return newStorage;
    880880}
     
    11181118    case ArrayWithArrayStorage: {
    11191119        Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), SwitchToSlowPutArrayStorage);
    1120         setStructure(vm, newStructure, m_butterfly);
     1120        setStructure(vm, newStructure);
    11211121        break;
    11221122    }
     
    11421142   
    11431143    Structure* newStructure = Structure::changePrototypeTransition(vm, structure(), prototype);
    1144     setStructure(vm, newStructure, m_butterfly);
     1144    setStructure(vm, newStructure);
    11451145   
    11461146    if (!newStructure->anyObjectInChainMayInterceptIndexedAccesses())
     
    11991199    // if we override an existing non-getter or non-setter.
    12001200    if (slot.type() != PutPropertySlot::NewProperty)
    1201         setStructure(vm, Structure::attributeChangeTransition(vm, structure(), propertyName, attributes), m_butterfly);
     1201        setStructure(vm, Structure::attributeChangeTransition(vm, structure(), propertyName, attributes));
    12021202
    12031203    if (attributes & ReadOnly)
     
    15481548        return;
    15491549    preventExtensions(vm);
    1550     setStructure(vm, Structure::sealTransition(vm, structure()), m_butterfly);
     1550    setStructure(vm, Structure::sealTransition(vm, structure()));
    15511551}
    15521552
     
    15561556        return;
    15571557    preventExtensions(vm);
    1558     setStructure(vm, Structure::freezeTransition(vm, structure()), m_butterfly);
     1558    setStructure(vm, Structure::freezeTransition(vm, structure()));
    15591559}
    15601560
     
    15631563    enterDictionaryIndexingMode(vm);
    15641564    if (isExtensible())
    1565         setStructure(vm, Structure::preventExtensionsTransition(vm, structure()), m_butterfly);
     1565        setStructure(vm, Structure::preventExtensionsTransition(vm, structure()));
    15661566}
    15671567
     
    15811581
    15821582    if (!structure()->isUncacheableDictionary())
    1583         setStructure(vm, Structure::toUncacheableDictionaryTransition(vm, structure()), m_butterfly);
     1583        setStructure(vm, Structure::toUncacheableDictionaryTransition(vm, structure()));
    15841584
    15851585    for (const ClassInfo* info = classInfo(); info; info = info->parentClass) {
     
    16111611    }
    16121612
    1613     setStructure(vm, Structure::removePropertyTransition(vm, structure(), propertyName, offset), m_butterfly);
     1613    setStructure(vm, Structure::removePropertyTransition(vm, structure(), propertyName, offset));
    16141614    if (offset == invalidOffset)
    16151615        return false;
Note: See TracChangeset for help on using the changeset viewer.