blob: 210340ef2498fd62b2465830ae33f87073429727 [file] [log] [blame]
Chris Lattner24943d22010-06-08 16:52:24 +00001//===-- SBFunction.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/SBFunction.h"
11#include "lldb/API/SBProcess.h"
Caroline Tice98f930f2010-09-20 05:20:02 +000012#include "lldb/API/SBStream.h"
Chris Lattner24943d22010-06-08 16:52:24 +000013#include "lldb/Symbol/Function.h"
14
15using namespace lldb;
16
17
18SBFunction::SBFunction () :
Greg Clayton63094e02010-06-23 01:19:29 +000019 m_opaque_ptr (NULL)
Chris Lattner24943d22010-06-08 16:52:24 +000020{
21}
22
23SBFunction::SBFunction (lldb_private::Function *lldb_object_ptr) :
Greg Clayton63094e02010-06-23 01:19:29 +000024 m_opaque_ptr (lldb_object_ptr)
Chris Lattner24943d22010-06-08 16:52:24 +000025{
26}
27
28SBFunction::~SBFunction ()
29{
Greg Clayton63094e02010-06-23 01:19:29 +000030 m_opaque_ptr = NULL;
Chris Lattner24943d22010-06-08 16:52:24 +000031}
32
33bool
34SBFunction::IsValid () const
35{
Greg Clayton63094e02010-06-23 01:19:29 +000036 return m_opaque_ptr != NULL;
Chris Lattner24943d22010-06-08 16:52:24 +000037}
38
39const char *
40SBFunction::GetName() const
41{
Greg Clayton63094e02010-06-23 01:19:29 +000042 if (m_opaque_ptr)
43 return m_opaque_ptr->GetMangled().GetName().AsCString();
Chris Lattner24943d22010-06-08 16:52:24 +000044 return NULL;
45}
46
47const char *
48SBFunction::GetMangledName () const
49{
Greg Clayton63094e02010-06-23 01:19:29 +000050 if (m_opaque_ptr)
51 return m_opaque_ptr->GetMangled().GetMangledName().AsCString();
Chris Lattner24943d22010-06-08 16:52:24 +000052 return NULL;
53}
54
55bool
56SBFunction::operator == (const SBFunction &rhs) const
57{
Greg Clayton63094e02010-06-23 01:19:29 +000058 return m_opaque_ptr == rhs.m_opaque_ptr;
Chris Lattner24943d22010-06-08 16:52:24 +000059}
60
61bool
62SBFunction::operator != (const SBFunction &rhs) const
63{
Greg Clayton63094e02010-06-23 01:19:29 +000064 return m_opaque_ptr != rhs.m_opaque_ptr;
Chris Lattner24943d22010-06-08 16:52:24 +000065}
Caroline Tice98f930f2010-09-20 05:20:02 +000066
67bool
68SBFunction::GetDescription (SBStream &description)
69{
70 if (m_opaque_ptr)
71 {
72 m_opaque_ptr->Dump (description.get(), false);
73 }
74 else
75 description.Printf ("No value");
76
77 return true;
78}
79
80PyObject *
81SBFunction::__repr__ ()
82{
83 SBStream description;
84 description.ref();
85 GetDescription (description);
86 return PyString_FromString (description.GetData());
87}