diff options
Diffstat (limited to 'lldb/source/Symbol/VariableList.cpp')
-rw-r--r-- | lldb/source/Symbol/VariableList.cpp | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/lldb/source/Symbol/VariableList.cpp b/lldb/source/Symbol/VariableList.cpp new file mode 100644 index 00000000000..7f864f287ea --- /dev/null +++ b/lldb/source/Symbol/VariableList.cpp @@ -0,0 +1,116 @@ +//===-- VariableList.cpp ----------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "lldb/Symbol/VariableList.h" +#include "lldb/Symbol/Block.h" +#include "lldb/Symbol/Function.h" +#include "lldb/Symbol/CompileUnit.h" + +using namespace lldb; +using namespace lldb_private; + +//---------------------------------------------------------------------- +// VariableList constructor +//---------------------------------------------------------------------- +VariableList::VariableList() : + m_variables() +{ +} + +//---------------------------------------------------------------------- +// Destructor +//---------------------------------------------------------------------- +VariableList::~VariableList() +{ +} + + +void +VariableList::AddVariable(VariableSP &variable_sp) +{ + m_variables.push_back(variable_sp); +} + + +void +VariableList::AddVariables(VariableList *variable_list) +{ + std::copy( variable_list->m_variables.begin(), // source begin + variable_list->m_variables.end(), // source end + back_inserter(m_variables)); // destination +} + + +void +VariableList::Clear() +{ + m_variables.clear(); +} + + + +VariableSP +VariableList::GetVariableAtIndex(uint32_t idx) +{ + VariableSP variable_sp; + if (idx < m_variables.size()) + variable_sp = m_variables[idx]; + return variable_sp; +} + + + +VariableSP +VariableList::FindVariable(const ConstString& name) +{ + VariableSP var_sp; + iterator pos, end = m_variables.end(); + for (pos = m_variables.begin(); pos != end; ++pos) + { + if ((*pos)->GetName() == name) + { + var_sp = (*pos); + break; + } + } + return var_sp; +} + + +size_t +VariableList::MemorySize() const +{ + size_t mem_size = sizeof(VariableList); + const_iterator pos, end = m_variables.end(); + for (pos = m_variables.begin(); pos != end; ++pos) + mem_size += (*pos)->MemorySize(); + return mem_size; +} + +size_t +VariableList::GetSize() const +{ + return m_variables.size(); +} + + +void +VariableList::Dump(Stream *s, bool show_context) const +{ +// s.Printf("%.*p: ", (int)sizeof(void*) * 2, this); +// s.Indent(); +// s << "VariableList\n"; + + const_iterator pos, end = m_variables.end(); + for (pos = m_variables.begin(); pos != end; ++pos) + { + (*pos)->Dump(s, show_context); + } +} + |