diff options
Diffstat (limited to 'JavaScriptCore/runtime/StructureTransitionTable.h')
-rw-r--r-- | JavaScriptCore/runtime/StructureTransitionTable.h | 53 |
1 files changed, 2 insertions, 51 deletions
diff --git a/JavaScriptCore/runtime/StructureTransitionTable.h b/JavaScriptCore/runtime/StructureTransitionTable.h index 0fa7b73..320dbdd 100644 --- a/JavaScriptCore/runtime/StructureTransitionTable.h +++ b/JavaScriptCore/runtime/StructureTransitionTable.h @@ -42,7 +42,7 @@ namespace JSC { typedef std::pair<RefPtr<UString::Rep>, unsigned> Key; static unsigned hash(const Key& p) { - return p.first->computedHash(); + return p.first->existingHash(); } static bool equal(const Key& a, const Key& b) @@ -69,36 +69,7 @@ namespace JSC { class StructureTransitionTable { typedef std::pair<Structure*, Structure*> Transition; - struct TransitionTable : public HashMap<StructureTransitionTableHash::Key, Transition, StructureTransitionTableHash, StructureTransitionTableHashTraits> { - typedef HashMap<unsigned, Structure*> AnonymousSlotMap; - - void addSlotTransition(unsigned count, Structure* structure) - { - ASSERT(!getSlotTransition(count)); - if (!m_anonymousSlotTable) - m_anonymousSlotTable.set(new AnonymousSlotMap); - m_anonymousSlotTable->add(count, structure); - } - - void removeSlotTransition(unsigned count) - { - ASSERT(getSlotTransition(count)); - m_anonymousSlotTable->remove(count); - } - - Structure* getSlotTransition(unsigned count) - { - if (!m_anonymousSlotTable) - return 0; - - AnonymousSlotMap::iterator find = m_anonymousSlotTable->find(count); - if (find == m_anonymousSlotTable->end()) - return 0; - return find->second; - } - private: - OwnPtr<AnonymousSlotMap> m_anonymousSlotTable; - }; + typedef HashMap<StructureTransitionTableHash::Key, Transition, StructureTransitionTableHash, StructureTransitionTableHashTraits> TransitionTable; public: StructureTransitionTable() { m_transitions.m_singleTransition.set(0); @@ -154,26 +125,6 @@ namespace JSC { } } - Structure* getAnonymousSlotTransition(unsigned count) - { - if (usingSingleTransitionSlot()) - return 0; - return table()->getSlotTransition(count); - } - - void addAnonymousSlotTransition(unsigned count, Structure* structure) - { - if (usingSingleTransitionSlot()) - reifySingleTransition(); - ASSERT(!table()->getSlotTransition(count)); - table()->addSlotTransition(count, structure); - } - - void removeAnonymousSlotTransition(unsigned count) - { - ASSERT(!usingSingleTransitionSlot()); - table()->removeSlotTransition(count); - } private: TransitionTable* table() const { ASSERT(!usingSingleTransitionSlot()); return m_transitions.m_table; } Structure* singleTransition() const { |