diff options
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp')
| -rw-r--r-- | Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp | 42 |
1 files changed, 7 insertions, 35 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp b/Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp index 1af13ef4e..a8376ea8a 100644 --- a/Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp +++ b/Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.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 @@ -24,21 +24,16 @@ */ #include "config.h" -#include "DFGDesiredWeakReferences.h" #if ENABLE(DFG_JIT) +#include "DFGDesiredWeakReferences.h" + #include "CodeBlock.h" #include "DFGCommonData.h" -#include "JSCInlines.h" namespace JSC { namespace DFG { -DesiredWeakReferences::DesiredWeakReferences() - : m_codeBlock(nullptr) -{ -} - DesiredWeakReferences::DesiredWeakReferences(CodeBlock* codeBlock) : m_codeBlock(codeBlock) { @@ -50,40 +45,17 @@ DesiredWeakReferences::~DesiredWeakReferences() void DesiredWeakReferences::addLazily(JSCell* cell) { - if (cell) - m_references.add(cell); -} - -void DesiredWeakReferences::addLazily(JSValue value) -{ - if (value.isCell()) - addLazily(value.asCell()); -} - -bool DesiredWeakReferences::contains(JSCell* cell) -{ - return m_references.contains(cell); + m_references.append(cell); } void DesiredWeakReferences::reallyAdd(VM& vm, CommonData* common) { - for (JSCell* target : m_references) { - if (Structure* structure = jsDynamicCast<Structure*>(target)) { - common->weakStructureReferences.append( - WriteBarrier<Structure>(vm, m_codeBlock, structure)); - } else { - common->weakReferences.append( - WriteBarrier<JSCell>(vm, m_codeBlock, target)); - } + for (unsigned i = 0; i < m_references.size(); i++) { + JSCell* target = m_references[i]; + common->weakReferences.append(WriteBarrier<JSCell>(vm, m_codeBlock->ownerExecutable(), target)); } } -void DesiredWeakReferences::visitChildren(SlotVisitor& visitor) -{ - for (JSCell* target : m_references) - visitor.appendUnbarrieredPointer(&target); -} - } } // namespace JSC::DFG #endif // ENABLE(DFG_JIT) |
