forked from OSchip/llvm-project
117 lines
2.5 KiB
C++
117 lines
2.5 KiB
C++
|
//===-- 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);
|
||
|
}
|
||
|
}
|
||
|
|