X-Git-Url: https://git.webkit.org/?p=WebKit.git;a=blobdiff_plain;f=JavaScriptCore%2Fkjs%2FJSObject.h;h=f690fc11878484ca197dbca3bd6caf12f40e9e15;hp=241cee830f566c086b59127dfe7791627a149572;hb=dc8a30cccaceeffcb67307fc1937cd2124c409ce;hpb=6e0fdcb6ec28e417989deb9f7d70dac3129665ec diff --git a/JavaScriptCore/kjs/JSObject.h b/JavaScriptCore/kjs/JSObject.h index 241cee830f56..f690fc118784 100644 --- a/JavaScriptCore/kjs/JSObject.h +++ b/JavaScriptCore/kjs/JSObject.h @@ -177,6 +177,7 @@ namespace JSC { virtual bool isNotAnObjectErrorStub() const { return false; } void allocatePropertyStorage(size_t oldSize, size_t newSize); + void allocatePropertyStorageInline(size_t oldSize, size_t newSize); bool usingInlineStorage() const { return m_propertyStorage == m_inlineStorage; } static const size_t inlineStorageCapacity = 2; @@ -506,6 +507,20 @@ inline void JSValue::put(ExecState* exec, unsigned propertyName, JSValue* value) asCell()->put(exec, propertyName, value); } +ALWAYS_INLINE void JSObject::allocatePropertyStorageInline(size_t oldSize, size_t newSize) +{ + ASSERT(newSize > oldSize); + + JSValue** oldPropertStorage = m_propertyStorage; + m_propertyStorage = new JSValue*[newSize]; + + for (unsigned i = 0; i < oldSize; ++i) + m_propertyStorage[i] = oldPropertStorage[i]; + + if (oldPropertStorage != m_inlineStorage) + delete [] oldPropertStorage; +} + } // namespace JSC #endif // JSObject_h