diff options
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp')
| -rw-r--r-- | Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp | 37 |
1 files changed, 7 insertions, 30 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp b/Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp index 48d77c3e1..f6587f47f 100644 --- a/Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp +++ b/Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2015 Apple Inc. All rights reserved. + * Copyright (C) 2013 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,20 +29,11 @@ #if ENABLE(DFG_JIT) #include "CodeBlock.h" -#include "DFGCommonData.h" -#include "JSCInlines.h" namespace JSC { namespace DFG { -DesiredIdentifiers::DesiredIdentifiers() - : m_codeBlock(nullptr) - , m_didProcessIdentifiers(false) -{ -} - DesiredIdentifiers::DesiredIdentifiers(CodeBlock* codeBlock) : m_codeBlock(codeBlock) - , m_didProcessIdentifiers(false) { } @@ -55,28 +46,14 @@ unsigned DesiredIdentifiers::numberOfIdentifiers() return m_codeBlock->numberOfIdentifiers() + m_addedIdentifiers.size(); } -unsigned DesiredIdentifiers::ensure(UniquedStringImpl* rep) +void DesiredIdentifiers::addLazily(StringImpl* rep) { - if (!m_didProcessIdentifiers) { - // Do this now instead of the constructor so that we don't pay the price on the main - // thread. Also, not all compilations need to call ensure(). - for (unsigned index = m_codeBlock->numberOfIdentifiers(); index--;) - m_identifierNumberForName.add(m_codeBlock->identifier(index).impl(), index); - m_didProcessIdentifiers = true; - } - - auto addResult = m_identifierNumberForName.add(rep, numberOfIdentifiers()); - unsigned result = addResult.iterator->value; - if (addResult.isNewEntry) { - m_addedIdentifiers.append(rep); - ASSERT(at(result) == rep); - } - return result; + m_addedIdentifiers.append(rep); } -UniquedStringImpl* DesiredIdentifiers::at(unsigned index) const +StringImpl* DesiredIdentifiers::at(unsigned index) const { - UniquedStringImpl* result; + StringImpl* result; if (index < m_codeBlock->numberOfIdentifiers()) result = m_codeBlock->identifier(index).impl(); else @@ -88,9 +65,9 @@ UniquedStringImpl* DesiredIdentifiers::at(unsigned index) const void DesiredIdentifiers::reallyAdd(VM& vm, CommonData* commonData) { for (unsigned i = 0; i < m_addedIdentifiers.size(); ++i) { - auto rep = m_addedIdentifiers[i]; + StringImpl* rep = m_addedIdentifiers[i]; ASSERT(rep->hasAtLeastOneRef()); - commonData->dfgIdentifiers.append(Identifier::fromUid(&vm, rep)); + commonData->dfgIdentifiers.append(Identifier(&vm, rep)); } } |
