Changeset 36304 in webkit for trunk/JavaScriptCore/kjs/JSObject.h


Ignore:
Timestamp:
Sep 9, 2008, 4:42:47 PM (17 years ago)
Author:
[email protected]
Message:

2008-09-09 Sam Weinig <[email protected]>

Reviewed by Geoffrey Garen.

Replace uses of PropertyMap::get and PropertyMap::getLocation with
PropertyMap::getOffset.

Sunspider reports this as a .6% improvement.

  • JavaScriptCore.exp:
  • kjs/JSObject.cpp: (JSC::JSObject::put): (JSC::JSObject::deleteProperty): (JSC::JSObject::getPropertyAttributes):
  • kjs/JSObject.h: (JSC::JSObject::getDirect): (JSC::JSObject::getDirectLocation): (JSC::JSObject::locationForOffset):
  • kjs/PropertyMap.cpp: (JSC::PropertyMap::remove): (JSC::PropertyMap::getOffset):
  • kjs/PropertyMap.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/JSObject.h

    r36285 r36304  
    125125        JSValue* getDirect(const Identifier& propertyName) const
    126126        {
    127             return m_structureID->propertyMap().get(propertyName, m_propertyStorage);
     127            size_t offset = m_structureID->propertyMap().getOffset(propertyName);
     128            return offset != WTF::notFound ? m_propertyStorage[offset] : 0;
    128129        }
    129130
    130131        JSValue** getDirectLocation(const Identifier& propertyName)
    131132        {
    132             return m_structureID->propertyMap().getLocation(propertyName, m_propertyStorage);
     133            size_t offset = m_structureID->propertyMap().getOffset(propertyName);
     134            return offset != WTF::notFound ? locationForOffset(offset) : 0;
    133135        }
    134136
    135137        JSValue** getDirectLocation(const Identifier& propertyName, bool& isWriteable)
    136138        {
    137             return m_structureID->propertyMap().getLocation(propertyName, isWriteable, m_propertyStorage);
     139            size_t offset = m_structureID->propertyMap().getOffset(propertyName, isWriteable);
     140            return offset != WTF::notFound ? locationForOffset(offset) : 0;
    138141        }
    139142
     
    141144        {
    142145            return location - m_propertyStorage.get();
     146        }
     147
     148        JSValue** locationForOffset(size_t offset)
     149        {
     150            return &m_propertyStorage[offset];
    143151        }
    144152
Note: See TracChangeset for help on using the changeset viewer.