diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Source/JavaScriptCore/runtime/Lookup.cpp | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/runtime/Lookup.cpp')
-rw-r--r-- | Source/JavaScriptCore/runtime/Lookup.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/Source/JavaScriptCore/runtime/Lookup.cpp b/Source/JavaScriptCore/runtime/Lookup.cpp index a6a349974..030aef5a5 100644 --- a/Source/JavaScriptCore/runtime/Lookup.cpp +++ b/Source/JavaScriptCore/runtime/Lookup.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008 Apple Inc. All rights reserved. + * Copyright (C) 2008, 2012 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,10 +22,11 @@ #include "Executable.h" #include "JSFunction.h" +#include "Operations.h" namespace JSC { -void HashTable::createTable(JSGlobalData* globalData) const +void HashTable::createTable(VM* vm) const { ASSERT(!table); int linkIndex = compactHashSizeMask + 1; @@ -33,7 +34,7 @@ void HashTable::createTable(JSGlobalData* globalData) const for (int i = 0; i < compactSize; ++i) entries[i].setKey(0); for (int i = 0; values[i].key; ++i) { - StringImpl* identifier = Identifier::add(globalData, values[i].key).leakRef(); + StringImpl* identifier = Identifier::add(vm, values[i].key).leakRef(); int hashIndex = identifier->existingHash() & compactHashSizeMask; HashEntry* entry = &entries[hashIndex]; @@ -68,23 +69,22 @@ bool setUpStaticFunctionSlot(ExecState* exec, const HashEntry* entry, JSObject* { ASSERT(thisObj->globalObject()); ASSERT(entry->attributes() & Function); - WriteBarrierBase<Unknown>* location = thisObj->getDirectLocation(exec->globalData(), propertyName); + PropertyOffset offset = thisObj->getDirectOffset(exec->vm(), propertyName); - if (!location) { + if (!isValidOffset(offset)) { // If a property is ever deleted from an object with a static table, then we reify // all static functions at that time - after this we shouldn't be re-adding anything. if (thisObj->staticFunctionsReified()) return false; - StringImpl* name = propertyName.publicName(); - ASSERT(name); - - JSFunction* function = JSFunction::create(exec, thisObj->globalObject(), entry->functionLength(), name, entry->function(), entry->intrinsic()); - thisObj->putDirect(exec->globalData(), propertyName, function, entry->attributes()); - location = thisObj->getDirectLocation(exec->globalData(), propertyName); + thisObj->putDirectNativeFunction( + exec, thisObj->globalObject(), propertyName, entry->functionLength(), + entry->function(), entry->intrinsic(), entry->attributes()); + offset = thisObj->getDirectOffset(exec->vm(), propertyName); + ASSERT(isValidOffset(offset)); } - slot.setValue(thisObj, location->get(), thisObj->offsetForLocation(location)); + slot.setValue(thisObj, thisObj->getDirect(offset), offset); return true; } |