blob: a7871790f552e20a5e7b4d3a170259eb6eb60c22 [file] [log] [blame]
Greg Clayton466f6c42010-09-10 18:31:35 +00001//===-- SBSymbolContextList.cpp ---------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "lldb/API/SBSymbolContextList.h"
11#include "lldb/Symbol/SymbolContext.h"
12
13using namespace lldb;
14using namespace lldb_private;
15
16SBSymbolContextList::SBSymbolContextList () :
17 m_opaque_ap ()
18{
19}
20
21SBSymbolContextList::SBSymbolContextList (const SBSymbolContextList& rhs) :
22 m_opaque_ap ()
23{
24 if (rhs.IsValid())
25 *m_opaque_ap = *rhs.m_opaque_ap;
26}
27
28SBSymbolContextList::~SBSymbolContextList ()
29{
30}
31
32const SBSymbolContextList &
33SBSymbolContextList::operator = (const SBSymbolContextList &rhs)
34{
35 if (this != &rhs)
36 {
37 if (rhs.IsValid())
38 m_opaque_ap.reset (new lldb_private::SymbolContextList(*rhs.m_opaque_ap.get()));
39 }
40 return *this;
41}
42
43uint32_t
44SBSymbolContextList::GetSize() const
45{
46 if (m_opaque_ap.get())
47 return m_opaque_ap->GetSize();
48 return 0;
49}
50
51SBSymbolContext
52SBSymbolContextList::GetContextAtIndex (uint32_t idx)
53{
54 SBSymbolContext sb_sc;
55 if (m_opaque_ap.get())
56 {
57 SymbolContext sc;
58 if (m_opaque_ap->GetContextAtIndex (idx, sc))
59 {
60 sb_sc.SetSymbolContext(&sc);
61 }
62 }
63 return sb_sc;
64}
65
66
67bool
68SBSymbolContextList::IsValid () const
69{
70 return m_opaque_ap.get() != NULL;
71}
72
73
74
75lldb_private::SymbolContextList*
76SBSymbolContextList::operator->() const
77{
78 return m_opaque_ap.get();
79}
80
81
82lldb_private::SymbolContextList&
83SBSymbolContextList::operator*() const
84{
85 assert (m_opaque_ap.get());
86 return *m_opaque_ap.get();
87}
88
89
90
91