summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2015-05-20 09:56:07 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2015-05-20 09:56:07 +0000
commit41386e9cb918eed93b3f13648cbef387e371e451 (patch)
treea97f9d7bd1d9d091833286085f72da9d83fd0606 /Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp
parente15dd966d523731101f70ccf768bba12435a0208 (diff)
downloadWebKitGtk-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.cpp36
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));
}
}