diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
commit | 32761a6cee1d0dee366b885b7b9c777e67885688 (patch) | |
tree | d6bec92bebfb216f4126356e55518842c2f476a1 /Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp | |
parent | a4e969f4965059196ca948db781e52f7cfebf19e (diff) | |
download | WebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz |
webkitgtk-2.4.11webkitgtk-2.4.11
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) |