diff options
| author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-05-20 09:56:07 +0000 |
|---|---|---|
| committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-05-20 09:56:07 +0000 |
| commit | 41386e9cb918eed93b3f13648cbef387e371e451 (patch) | |
| tree | a97f9d7bd1d9d091833286085f72da9d83fd0606 /Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp | |
| parent | e15dd966d523731101f70ccf768bba12435a0208 (diff) | |
| download | WebKitGtk-tarball-41386e9cb918eed93b3f13648cbef387e371e451.tar.gz | |
webkitgtk-2.4.9webkitgtk-2.4.9
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp')
| -rw-r--r-- | Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp | 36 |
1 files changed, 7 insertions, 29 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp b/Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp index d3e8eac1c..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,19 +29,11 @@ #if ENABLE(DFG_JIT) #include "CodeBlock.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) { } @@ -54,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 @@ -87,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)); } } |
