summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/include/lldb/Breakpoint/Breakpoint.h16
-rw-r--r--lldb/include/lldb/Breakpoint/BreakpointLocation.h4
-rw-r--r--lldb/include/lldb/Breakpoint/BreakpointOptions.h2
-rw-r--r--lldb/include/lldb/Breakpoint/BreakpointSite.h4
-rw-r--r--lldb/include/lldb/Core/Debugger.h2
-rw-r--r--lldb/include/lldb/Core/ValueObject.h4
-rw-r--r--lldb/include/lldb/Target/StackFrame.h1
-rw-r--r--lldb/include/lldb/Target/Target.h1
-rw-r--r--lldb/include/lldb/Target/Thread.h1
-rw-r--r--lldb/include/lldb/Target/ThreadPlanTestCondition.h8
-rw-r--r--lldb/include/lldb/Utility/SharingPtr.h90
-rw-r--r--lldb/include/lldb/lldb-forward-rtti.h14
-rw-r--r--lldb/source/Breakpoint/Breakpoint.cpp11
-rw-r--r--lldb/source/Breakpoint/BreakpointLocation.cpp10
-rw-r--r--lldb/source/Breakpoint/BreakpointOptions.cpp2
-rw-r--r--lldb/source/Commands/CommandObjectBreakpoint.cpp2
-rw-r--r--lldb/source/Core/Debugger.cpp53
-rw-r--r--lldb/source/Core/SearchFilter.cpp4
-rw-r--r--lldb/source/Expression/ClangExpressionDeclMap.cpp10
-rw-r--r--lldb/source/Interpreter/Options.cpp2
-rw-r--r--lldb/source/Interpreter/ScriptInterpreterPython.cpp1
-rw-r--r--lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp2
-rw-r--r--lldb/source/Target/Process.cpp12
-rw-r--r--lldb/source/Target/StackFrame.cpp52
-rw-r--r--lldb/source/Target/Target.cpp4
-rw-r--r--lldb/source/Target/Thread.cpp4
-rw-r--r--lldb/source/Target/ThreadPlanTestCondition.cpp11
-rw-r--r--lldb/source/Utility/SharingPtr.cpp13
28 files changed, 146 insertions, 194 deletions
diff --git a/lldb/include/lldb/Breakpoint/Breakpoint.h b/lldb/include/lldb/Breakpoint/Breakpoint.h
index a28a7fb92d5..30e9fc30af9 100644
--- a/lldb/include/lldb/Breakpoint/Breakpoint.h
+++ b/lldb/include/lldb/Breakpoint/Breakpoint.h
@@ -74,6 +74,7 @@ namespace lldb_private {
/// not by the breakpoint.
//----------------------------------------------------------------------
class Breakpoint:
+ public ReferenceCountedBase<Breakpoint>,
public Stoppoint
{
public:
@@ -514,21 +515,6 @@ public:
InvokeCallback (StoppointCallbackContext *context,
lldb::break_id_t bp_loc_id);
- //------------------------------------------------------------------
- /// Returns the shared pointer that this breakpoint holds for the
- /// breakpoint location passed in as \a bp_loc_ptr. Passing in a
- /// breakpoint location that doesn't belong to this breakpoint will
- /// cause an assert.
- ///
- /// Meant to be used by the BreakpointLocation::GetSP() function.
- ///
- /// @return
- /// A copy of the shared pointer for the given location.
- //------------------------------------------------------------------
- lldb::BreakpointLocationSP
- GetLocationSP (BreakpointLocation *bp_loc_ptr);
-
-
protected:
friend class Target;
//------------------------------------------------------------------
diff --git a/lldb/include/lldb/Breakpoint/BreakpointLocation.h b/lldb/include/lldb/Breakpoint/BreakpointLocation.h
index 3aa98a32d44..6569e183dcf 100644
--- a/lldb/include/lldb/Breakpoint/BreakpointLocation.h
+++ b/lldb/include/lldb/Breakpoint/BreakpointLocation.h
@@ -46,7 +46,9 @@ namespace lldb_private {
/// would be useful if you've set options on the locations.
//----------------------------------------------------------------------
-class BreakpointLocation : public StoppointLocation
+class BreakpointLocation :
+ public ReferenceCountedBase<BreakpointLocation>,
+ public StoppointLocation
{
public:
diff --git a/lldb/include/lldb/Breakpoint/BreakpointOptions.h b/lldb/include/lldb/Breakpoint/BreakpointOptions.h
index d007685726d..b97593a6ddd 100644
--- a/lldb/include/lldb/Breakpoint/BreakpointOptions.h
+++ b/lldb/include/lldb/Breakpoint/BreakpointOptions.h
@@ -116,7 +116,7 @@ public:
/// A thread plan to run to test the condition, or NULL if there is no thread plan.
//------------------------------------------------------------------
ThreadPlan *GetThreadPlanToTestCondition (ExecutionContext &exe_ctx,
- lldb::BreakpointLocationSP break_loc_sp,
+ const lldb::BreakpointLocationSP& break_loc_sp,
Stream &error);
//------------------------------------------------------------------
diff --git a/lldb/include/lldb/Breakpoint/BreakpointSite.h b/lldb/include/lldb/Breakpoint/BreakpointSite.h
index 6dec29ba933..718311528bf 100644
--- a/lldb/include/lldb/Breakpoint/BreakpointSite.h
+++ b/lldb/include/lldb/Breakpoint/BreakpointSite.h
@@ -38,7 +38,9 @@ namespace lldb_private {
/// site. Breakpoint sites are owned by the process.
//----------------------------------------------------------------------
-class BreakpointSite : public StoppointLocation
+class BreakpointSite :
+ public ReferenceCountedBase<BreakpointSite>,
+ public StoppointLocation
{
public:
diff --git a/lldb/include/lldb/Core/Debugger.h b/lldb/include/lldb/Core/Debugger.h
index 54b396643ac..45afaa911a8 100644
--- a/lldb/include/lldb/Core/Debugger.h
+++ b/lldb/include/lldb/Core/Debugger.h
@@ -220,6 +220,7 @@ private:
class Debugger :
+ public ReferenceCountedBaseVirtual<Debugger>,
public UserID,
public DebuggerInstanceSettings
{
@@ -275,6 +276,7 @@ public:
static void
Destroy (lldb::DebuggerSP &debugger_sp);
+ virtual
~Debugger ();
void Clear();
diff --git a/lldb/include/lldb/Core/ValueObject.h b/lldb/include/lldb/Core/ValueObject.h
index 1c003efa0da..8ea9e397498 100644
--- a/lldb/include/lldb/Core/ValueObject.h
+++ b/lldb/include/lldb/Core/ValueObject.h
@@ -351,13 +351,13 @@ public:
ExecutionContextScope *
GetExecutionContextScope ();
- lldb::TargetSP
+ const lldb::TargetSP &
GetTargetSP () const
{
return m_target_sp;
}
- lldb::ProcessSP
+ const lldb::ProcessSP &
GetProcessSP () const
{
return m_process_sp;
diff --git a/lldb/include/lldb/Target/StackFrame.h b/lldb/include/lldb/Target/StackFrame.h
index 55e49be4201..e90959bcb43 100644
--- a/lldb/include/lldb/Target/StackFrame.h
+++ b/lldb/include/lldb/Target/StackFrame.h
@@ -27,6 +27,7 @@
namespace lldb_private {
class StackFrame :
+ public ReferenceCountedBaseVirtual<StackFrame>,
public ExecutionContextScope
{
public:
diff --git a/lldb/include/lldb/Target/Target.h b/lldb/include/lldb/Target/Target.h
index 186d3c28996..0a78b972675 100644
--- a/lldb/include/lldb/Target/Target.h
+++ b/lldb/include/lldb/Target/Target.h
@@ -123,6 +123,7 @@ protected:
// Target
//----------------------------------------------------------------------
class Target :
+ public ReferenceCountedBaseVirtual<Target>,
public Broadcaster,
public ExecutionContextScope,
public TargetInstanceSettings
diff --git a/lldb/include/lldb/Target/Thread.h b/lldb/include/lldb/Target/Thread.h
index afb70b0e192..28a8ed4b3a8 100644
--- a/lldb/include/lldb/Target/Thread.h
+++ b/lldb/include/lldb/Target/Thread.h
@@ -85,6 +85,7 @@ private:
};
class Thread :
+ public ReferenceCountedBaseVirtual<Thread>,
public UserID,
public ExecutionContextScope,
public ThreadInstanceSettings
diff --git a/lldb/include/lldb/Target/ThreadPlanTestCondition.h b/lldb/include/lldb/Target/ThreadPlanTestCondition.h
index a27fc283643..974467c4f1f 100644
--- a/lldb/include/lldb/Target/ThreadPlanTestCondition.h
+++ b/lldb/include/lldb/Target/ThreadPlanTestCondition.h
@@ -30,10 +30,10 @@ public:
virtual ~ThreadPlanTestCondition ();
ThreadPlanTestCondition (Thread &thread,
- ExecutionContext &exe_ctx,
- ClangUserExpression *expression,
- lldb::BreakpointLocationSP break_loc_sp,
- bool stop_others);
+ ExecutionContext &exe_ctx,
+ ClangUserExpression *expression,
+ const lldb::BreakpointLocationSP &break_loc_sp,
+ bool stop_others);
virtual void GetDescription (Stream *s, lldb::DescriptionLevel level);
virtual bool ValidatePlan (Stream *error);
diff --git a/lldb/include/lldb/Utility/SharingPtr.h b/lldb/include/lldb/Utility/SharingPtr.h
index 87c1b2f7ea0..5a3197aeeb5 100644
--- a/lldb/include/lldb/Utility/SharingPtr.h
+++ b/lldb/include/lldb/Utility/SharingPtr.h
@@ -16,6 +16,20 @@
namespace lldb_private {
namespace imp {
+
+template <class T>
+inline T
+increment(T& t)
+{
+ return __sync_add_and_fetch(&t, 1);
+}
+
+template <class T>
+inline T
+decrement(T& t)
+{
+ return __sync_add_and_fetch(&t, -1);
+}
class shared_count
{
@@ -540,22 +554,16 @@ template <class T>
class ReferenceCountedBase
{
public:
- explicit ReferenceCountedBase(long refs = 0)
- : shared_owners_(refs)
+ explicit ReferenceCountedBase()
+ : shared_owners_(-1)
{
}
void
- add_shared()
- {
- __sync_add_and_fetch(&shared_owners_, 1);
- }
+ add_shared();
+
void
- release_shared()
- {
- if (__sync_add_and_fetch(&shared_owners_, -1) == -1)
- delete static_cast<T*>(this);
- }
+ release_shared();
long
use_count() const
@@ -573,54 +581,20 @@ private:
ReferenceCountedBase& operator=(const ReferenceCountedBase&);
};
+ template <class T>
+ void
+ lldb_private::ReferenceCountedBase<T>::add_shared()
+ {
+ imp::increment(shared_owners_);
+ }
-//template <class T>
-//class ReferenceCountedBaseVirtual
-//{
-//public:
-// explicit ReferenceCountedBaseVirtual(long refs = 0) :
-// shared_owners_(refs)
-// {
-// }
-//
-// void
-// add_shared();
-//
-// void
-// release_shared();
-//
-// long
-// use_count() const
-// {
-// return shared_owners_ + 1;
-// }
-//
-//protected:
-// long shared_owners_;
-//
-// virtual ~ReferenceCountedBaseVirtual() {}
-//
-// friend class IntrusiveSharingPtr<T>;
-//
-//private:
-// ReferenceCountedBaseVirtual(const ReferenceCountedBaseVirtual&);
-// ReferenceCountedBaseVirtual& operator=(const ReferenceCountedBaseVirtual&);
-//};
-//
-//template <class T>
-//void
-//ReferenceCountedBaseVirtual<T>::add_shared()
-//{
-// __sync_add_and_fetch(&shared_owners_, 1);
-//}
-//
-//template <class T>
-//void
-//ReferenceCountedBaseVirtual<T>::release_shared()
-//{
-// if (__sync_add_and_fetch(&shared_owners_, -1) == -1)
-// delete this;
-//}
+ template <class T>
+ void
+ lldb_private::ReferenceCountedBase<T>::release_shared()
+ {
+ if (imp::decrement(shared_owners_) == -1)
+ delete static_cast<T*>(this);
+ }
template <class T>
diff --git a/lldb/include/lldb/lldb-forward-rtti.h b/lldb/include/lldb/lldb-forward-rtti.h
index 7a83f672d98..15d2d04fa26 100644
--- a/lldb/include/lldb/lldb-forward-rtti.h
+++ b/lldb/include/lldb/lldb-forward-rtti.h
@@ -23,9 +23,9 @@ namespace lldb {
typedef SharedPtr<lldb_private::AddressResolver>::Type AddressResolverSP;
typedef SharedPtr<lldb_private::Baton>::Type BatonSP;
typedef SharedPtr<lldb_private::Block>::Type BlockSP;
- typedef SharedPtr<lldb_private::Breakpoint>::Type BreakpointSP;
- typedef SharedPtr<lldb_private::BreakpointSite>::Type BreakpointSiteSP;
- typedef SharedPtr<lldb_private::BreakpointLocation>::Type BreakpointLocationSP;
+ typedef IntrusiveSharedPtr<lldb_private::Breakpoint>::Type BreakpointSP;
+ typedef IntrusiveSharedPtr<lldb_private::BreakpointSite>::Type BreakpointSiteSP;
+ typedef IntrusiveSharedPtr<lldb_private::BreakpointLocation>::Type BreakpointLocationSP;
typedef SharedPtr<lldb_private::BreakpointResolver>::Type BreakpointResolverSP;
typedef SharedPtr<lldb_private::Broadcaster>::Type BroadcasterSP;
typedef SharedPtr<lldb_private::ClangExpressionVariable>::Type ClangExpressionVariableSP;
@@ -35,7 +35,7 @@ namespace lldb {
typedef SharedPtr<lldb_private::CompileUnit>::Type CompUnitSP;
typedef SharedPtr<lldb_private::DataBuffer>::Type DataBufferSP;
typedef SharedPtr<lldb_private::DataExtractor>::Type DataExtractorSP;
- typedef SharedPtr<lldb_private::Debugger>::Type DebuggerSP;
+ typedef IntrusiveSharedPtr<lldb_private::Debugger>::Type DebuggerSP;
typedef SharedPtr<lldb_private::Disassembler>::Type DisassemblerSP;
typedef SharedPtr<lldb_private::DynamicLoader>::Type DynamicLoaderSP;
typedef SharedPtr<lldb_private::Event>::Type EventSP;
@@ -59,7 +59,7 @@ namespace lldb {
typedef SharedPtr<lldb_private::Section>::Type SectionSP;
typedef SharedPtr<lldb_private::SearchFilter>::Type SearchFilterSP;
typedef SharedPtr<lldb_private::ScriptSummaryFormat>::Type ScriptFormatSP;
- typedef SharedPtr<lldb_private::StackFrame>::Type StackFrameSP;
+ typedef IntrusiveSharedPtr<lldb_private::StackFrame>::Type StackFrameSP;
typedef SharedPtr<lldb_private::StackFrameList>::Type StackFrameListSP;
typedef SharedPtr<lldb_private::StopInfo>::Type StopInfoSP;
typedef SharedPtr<lldb_private::StoppointLocation>::Type StoppointLocationSP;
@@ -70,8 +70,8 @@ namespace lldb {
typedef SharedPtr<lldb_private::SymbolContextSpecifier>::Type SymbolContextSpecifierSP;
typedef SharedPtr<lldb_private::SyntheticChildren>::Type SyntheticChildrenSP;
typedef SharedPtr<lldb_private::SyntheticChildrenFrontEnd>::Type SyntheticChildrenFrontEndSP;
- typedef SharedPtr<lldb_private::Target>::Type TargetSP;
- typedef SharedPtr<lldb_private::Thread>::Type ThreadSP;
+ typedef IntrusiveSharedPtr<lldb_private::Target>::Type TargetSP;
+ typedef IntrusiveSharedPtr<lldb_private::Thread>::Type ThreadSP;
typedef SharedPtr<lldb_private::ThreadPlan>::Type ThreadPlanSP;
typedef SharedPtr<lldb_private::ThreadPlanTracer>::Type ThreadPlanTracerSP;
typedef SharedPtr<lldb_private::Type>::Type TypeSP;
diff --git a/lldb/source/Breakpoint/Breakpoint.cpp b/lldb/source/Breakpoint/Breakpoint.cpp
index 4fa77dd7135..6da2625056d 100644
--- a/lldb/source/Breakpoint/Breakpoint.cpp
+++ b/lldb/source/Breakpoint/Breakpoint.cpp
@@ -124,13 +124,6 @@ Breakpoint::GetLocationAtIndex (uint32_t index)
return m_locations.GetByIndex(index);
}
-BreakpointLocationSP
-Breakpoint::GetLocationSP (BreakpointLocation *bp_loc_ptr)
-{
- return m_locations.FindByID(bp_loc_ptr->GetID());
-}
-
-
// For each of the overall options we need to decide how they propagate to
// the location options. This will determine the precedence of options on
// the breakpoint vrs. its locations.
@@ -567,5 +560,7 @@ Breakpoint::GetFilterDescription (Stream *s)
const BreakpointSP
Breakpoint::GetSP ()
{
- return m_target.GetBreakpointList().FindBreakpointByID (GetID());
+ // This object contains an instrusive ref count base class so we can
+ // easily make a shared pointer to this object
+ return BreakpointSP (this);
}
diff --git a/lldb/source/Breakpoint/BreakpointLocation.cpp b/lldb/source/Breakpoint/BreakpointLocation.cpp
index ce5482fec57..58f18e2f801 100644
--- a/lldb/source/Breakpoint/BreakpointLocation.cpp
+++ b/lldb/source/Breakpoint/BreakpointLocation.cpp
@@ -149,11 +149,11 @@ BreakpointLocation::SetCondition (const char *condition)
ThreadPlan *
BreakpointLocation::GetThreadPlanToTestCondition (ExecutionContext &exe_ctx, Stream &error)
{
- lldb::BreakpointLocationSP my_sp(m_owner.GetLocationSP(this));
+ lldb::BreakpointLocationSP this_sp(this);
if (m_options_ap.get())
- return m_options_ap->GetThreadPlanToTestCondition (exe_ctx, my_sp, error);
+ return m_options_ap->GetThreadPlanToTestCondition (exe_ctx, this_sp, error);
else
- return m_owner.GetThreadPlanToTestCondition (exe_ctx, my_sp, error);
+ return m_owner.GetThreadPlanToTestCondition (exe_ctx, this_sp, error);
}
const char *
@@ -259,9 +259,9 @@ BreakpointLocation::ResolveBreakpointSite ()
if (m_owner.GetTarget().GetSectionLoadList().IsEmpty())
return false;
- BreakpointLocationSP myself_sp(m_owner.GetLocationSP (this));
+ BreakpointLocationSP this_sp(this);
- lldb::break_id_t new_id = process->CreateBreakpointSite (myself_sp, false);
+ lldb::break_id_t new_id = process->CreateBreakpointSite (this_sp, false);
if (new_id == LLDB_INVALID_BREAK_ID)
{
diff --git a/lldb/source/Breakpoint/BreakpointOptions.cpp b/lldb/source/Breakpoint/BreakpointOptions.cpp
index f0f18457fd2..df41339ab8f 100644
--- a/lldb/source/Breakpoint/BreakpointOptions.cpp
+++ b/lldb/source/Breakpoint/BreakpointOptions.cpp
@@ -172,7 +172,7 @@ BreakpointOptions::SetCondition (const char *condition)
ThreadPlan *
BreakpointOptions::GetThreadPlanToTestCondition (ExecutionContext &exe_ctx,
- lldb::BreakpointLocationSP break_loc_sp,
+ const BreakpointLocationSP &break_loc_sp,
Stream &error_stream)
{
// No condition means we should stop, so return NULL.
diff --git a/lldb/source/Commands/CommandObjectBreakpoint.cpp b/lldb/source/Commands/CommandObjectBreakpoint.cpp
index 20641acf117..88a130d3982 100644
--- a/lldb/source/Commands/CommandObjectBreakpoint.cpp
+++ b/lldb/source/Commands/CommandObjectBreakpoint.cpp
@@ -574,7 +574,7 @@ CommandObjectMultiwordBreakpoint::VerifyBreakpointIDs (Args &args, Target *targe
if (args.GetArgumentCount() == 0)
{
- if (target->GetLastCreatedBreakpoint() != NULL)
+ if (target->GetLastCreatedBreakpoint())
{
valid_ids->AddBreakpointID (BreakpointID(target->GetLastCreatedBreakpoint()->GetID(), LLDB_INVALID_BREAK_ID));
result.SetStatus (eReturnStatusSuccessFinishNoResult);
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp
index 91898152870..debba813a85 100644
--- a/lldb/source/Core/Debugger.cpp
+++ b/lldb/source/Core/Debugger.cpp
@@ -152,7 +152,7 @@ Debugger::CreateInstance ()
}
void
-Debugger::Destroy (lldb::DebuggerSP &debugger_sp)
+Debugger::Destroy (DebuggerSP &debugger_sp)
{
if (debugger_sp.get() == NULL)
return;
@@ -172,29 +172,18 @@ Debugger::Destroy (lldb::DebuggerSP &debugger_sp)
}
}
-lldb::DebuggerSP
+DebuggerSP
Debugger::GetSP ()
{
- lldb::DebuggerSP debugger_sp;
-
- Mutex::Locker locker (GetDebuggerListMutex ());
- DebuggerList &debugger_list = GetDebuggerList();
- DebuggerList::iterator pos, end = debugger_list.end();
- for (pos = debugger_list.begin(); pos != end; ++pos)
- {
- if ((*pos).get() == this)
- {
- debugger_sp = *pos;
- break;
- }
- }
- return debugger_sp;
+ // This object contains an instrusive ref count base class so we can
+ // easily make a shared pointer to this object
+ return DebuggerSP (this);
}
-lldb::DebuggerSP
+DebuggerSP
Debugger::FindDebuggerWithInstanceName (const ConstString &instance_name)
{
- lldb::DebuggerSP debugger_sp;
+ DebuggerSP debugger_sp;
Mutex::Locker locker (GetDebuggerListMutex ());
DebuggerList &debugger_list = GetDebuggerList();
@@ -214,7 +203,7 @@ Debugger::FindDebuggerWithInstanceName (const ConstString &instance_name)
TargetSP
Debugger::FindTargetWithProcessID (lldb::pid_t pid)
{
- lldb::TargetSP target_sp;
+ TargetSP target_sp;
Mutex::Locker locker (GetDebuggerListMutex ());
DebuggerList &debugger_list = GetDebuggerList();
DebuggerList::iterator pos, end = debugger_list.end();
@@ -350,7 +339,7 @@ Debugger::GetSelectedExecutionContext ()
ExecutionContext exe_ctx;
exe_ctx.Clear();
- lldb::TargetSP target_sp = GetSelectedTarget();
+ TargetSP target_sp = GetSelectedTarget();
exe_ctx.target = target_sp.get();
if (target_sp)
@@ -469,7 +458,7 @@ Debugger::NotifyTopInputReader (InputReaderAction notification)
}
bool
-Debugger::InputReaderIsTopReader (const lldb::InputReaderSP& reader_sp)
+Debugger::InputReaderIsTopReader (const InputReaderSP& reader_sp)
{
InputReaderSP top_reader_sp (GetCurrentInputReader());
@@ -531,7 +520,7 @@ Debugger::PushInputReader (const InputReaderSP& reader_sp)
}
bool
-Debugger::PopInputReader (const lldb::InputReaderSP& pop_reader_sp)
+Debugger::PopInputReader (const InputReaderSP& pop_reader_sp)
{
bool result = false;
@@ -627,7 +616,7 @@ Debugger::GetAsyncErrorStream ()
DebuggerSP
Debugger::FindDebuggerWithID (lldb::user_id_t id)
{
- lldb::DebuggerSP debugger_sp;
+ DebuggerSP debugger_sp;
Mutex::Locker locker (GetDebuggerListMutex ());
DebuggerList &debugger_list = GetDebuggerList();
@@ -710,7 +699,7 @@ ScanFormatDescriptor (const char* var_name_begin,
const char* var_name_end,
const char** var_name_final,
const char** percent_position,
- lldb::Format* custom_format,
+ Format* custom_format,
ValueObject::ValueObjectRepresentationStyle* val_obj_display)
{
LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES));
@@ -1033,7 +1022,7 @@ Debugger::FormatPrompt
if (*var_name_begin == 's')
{
- valobj = valobj->GetSyntheticValue(lldb::eUseSyntheticFilter).get();
+ valobj = valobj->GetSyntheticValue(eUseSyntheticFilter).get();
var_name_begin++;
}
@@ -1053,7 +1042,7 @@ Debugger::FormatPrompt
options.DontCheckDotVsArrowSyntax().DoAllowBitfieldSyntax().DoAllowFragileIVar().DoAllowSyntheticChildren();
ValueObject::ValueObjectRepresentationStyle val_obj_display = ValueObject::eDisplaySummary;
ValueObject* target = NULL;
- lldb::Format custom_format = eFormatInvalid;
+ Format custom_format = eFormatInvalid;
const char* var_name_final = NULL;
const char* var_name_final_if_array_range = NULL;
const char* close_bracket_position = NULL;
@@ -1847,7 +1836,7 @@ Debugger::FormatPrompt
//--------------------------------------------------
Debugger::SettingsController::SettingsController () :
- UserSettingsController ("", lldb::UserSettingsControllerSP())
+ UserSettingsController ("", UserSettingsControllerSP())
{
m_default_settings.reset (new DebuggerInstanceSettings (*this, false,
InstanceSettings::GetDefaultName().AsCString()));
@@ -1858,12 +1847,12 @@ Debugger::SettingsController::~SettingsController ()
}
-lldb::InstanceSettingsSP
+InstanceSettingsSP
Debugger::SettingsController::CreateInstanceSettings (const char *instance_name)
{
DebuggerInstanceSettings *new_settings = new DebuggerInstanceSettings (*GetSettingsController(),
false, instance_name);
- lldb::InstanceSettingsSP new_settings_sp (new_settings);
+ InstanceSettingsSP new_settings_sp (new_settings);
return new_settings_sp;
}
@@ -1900,7 +1889,7 @@ DebuggerInstanceSettings::DebuggerInstanceSettings
if (live_instance)
{
- const lldb::InstanceSettingsSP &pending_settings = m_owner.FindPendingSettings (m_instance_name);
+ const InstanceSettingsSP &pending_settings = m_owner.FindPendingSettings (m_instance_name);
CopyInstanceSettings (pending_settings, false);
}
}
@@ -1914,7 +1903,7 @@ DebuggerInstanceSettings::DebuggerInstanceSettings (const DebuggerInstanceSettin
m_use_external_editor (rhs.m_use_external_editor),
m_auto_confirm_on(rhs.m_auto_confirm_on)
{
- const lldb::InstanceSettingsSP &pending_settings = m_owner.FindPendingSettings (m_instance_name);
+ const InstanceSettingsSP &pending_settings = m_owner.FindPendingSettings (m_instance_name);
CopyInstanceSettings (pending_settings, false);
m_owner.RemovePendingSettings (m_instance_name);
}
@@ -2082,7 +2071,7 @@ DebuggerInstanceSettings::GetInstanceSettingsValue (const SettingEntry &entry,
}
void
-DebuggerInstanceSettings::CopyInstanceSettings (const lldb::InstanceSettingsSP &new_settings,
+DebuggerInstanceSettings::CopyInstanceSettings (const InstanceSettingsSP &new_settings,
bool pending)
{
if (new_settings.get() == NULL)
diff --git a/lldb/source/Core/SearchFilter.cpp b/lldb/source/Core/SearchFilter.cpp
index adcc1caf314..8a9140df50d 100644
--- a/lldb/source/Core/SearchFilter.cpp
+++ b/lldb/source/Core/SearchFilter.cpp
@@ -131,7 +131,7 @@ SearchFilter::Search (Searcher &searcher)
{
SymbolContext empty_sc;
- if (m_target_sp == NULL)
+ if (!m_target_sp)
return;
empty_sc.target_sp = m_target_sp;
@@ -146,7 +146,7 @@ SearchFilter::SearchInModuleList (Searcher &searcher, ModuleList &modules)
{
SymbolContext empty_sc;
- if (m_target_sp == NULL)
+ if (!m_target_sp)
return;
empty_sc.target_sp = m_target_sp;
diff --git a/lldb/source/Expression/ClangExpressionDeclMap.cpp b/lldb/source/Expression/ClangExpressionDeclMap.cpp
index d0dd4a5f022..ea256f09948 100644
--- a/lldb/source/Expression/ClangExpressionDeclMap.cpp
+++ b/lldb/source/Expression/ClangExpressionDeclMap.cpp
@@ -75,9 +75,15 @@ ClangExpressionDeclMap::WillParse(ExecutionContext &exe_ctx)
else if (exe_ctx.thread)
m_parser_vars->m_sym_ctx = exe_ctx.thread->GetStackFrameAtIndex(0)->GetSymbolContext(lldb::eSymbolContextEverything);
else if (exe_ctx.process)
- m_parser_vars->m_sym_ctx = SymbolContext(exe_ctx.target->GetSP(), ModuleSP());
+ {
+ m_parser_vars->m_sym_ctx.Clear();
+ m_parser_vars->m_sym_ctx.target_sp = exe_ctx.target;
+ }
else if (exe_ctx.target)
- m_parser_vars->m_sym_ctx = SymbolContext(exe_ctx.target->GetSP(), ModuleSP());
+ {
+ m_parser_vars->m_sym_ctx.Clear();
+ m_parser_vars->m_sym_ctx.target_sp = exe_ctx.target;
+ }
if (exe_ctx.target)
m_parser_vars->m_persistent_vars = &exe_ctx.target->GetPersistentVariables();
diff --git a/lldb/source/Interpreter/Options.cpp b/lldb/source/Interpreter/Options.cpp
index 2351345100d..5e9f04798af 100644
--- a/lldb/source/Interpreter/Options.cpp
+++ b/lldb/source/Interpreter/Options.cpp
@@ -886,7 +886,7 @@ Options::HandleOptionArgumentCompletion
FileSpec module_spec(module_name, false);
lldb::TargetSP target_sp = m_interpreter.GetDebugger().GetSelectedTarget();
// Search filters require a target...
- if (target_sp != NULL)
+ if (target_sp)
filter_ap.reset (new SearchFilterByModule (target_sp, module_spec));
}
break;
diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp
index 18c7b990fd8..91fb9273b15 100644
--- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp
+++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp
@@ -19,6 +19,7 @@
#include <string>
#include "lldb/API/SBValue.h"
+#include "lldb/Breakpoint/BreakpointLocation.h"
#include "lldb/Breakpoint/StoppointCallbackContext.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/Timer.h"
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
index 9a5dbc255c9..f1efea260d0 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
@@ -373,7 +373,7 @@ AppleObjCTrampolineHandler::AppleObjCVTables::InitializeVTableSymbols ()
if (changed_addr != LLDB_INVALID_ADDRESS)
{
BreakpointSP trampolines_changed_bp_sp = target.CreateBreakpoint (changed_addr, true);
- if (trampolines_changed_bp_sp != NULL)
+ if (trampolines_changed_bp_sp)
{
m_trampolines_changed_bp_id = trampolines_changed_bp_sp->GetID();
trampolines_changed_bp_sp->SetCallback (RefreshTrampolines, this, true);
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index 3fdc2a71bc6..c1deb46ac5d 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -1416,22 +1416,22 @@ Process::RemoveBreakpointOpcodesFromBuffer (addr_t bp_addr, size_t size, uint8_t
size_t intersect_size;
size_t opcode_offset;
size_t idx;
- BreakpointSiteSP bp;
+ BreakpointSiteSP bp_sp;
BreakpointSiteList bp_sites_in_range;
if (m_breakpoint_site_list.FindInRange (bp_addr, bp_addr + size, bp_sites_in_range))
{
- for (idx = 0; (bp = bp_sites_in_range.GetByIndex(idx)) != NULL; ++idx)
+ for (idx = 0; (bp_sp = bp_sites_in_range.GetByIndex(idx)); ++idx)
{
- if (bp->GetType() == BreakpointSite::eSoftware)
+ if (bp_sp->GetType() == BreakpointSite::eSoftware)
{
- if (bp->IntersectsRange(bp_addr, size, &intersect_addr, &intersect_size, &opcode_offset))
+ if (bp_sp->IntersectsRange(bp_addr, size, &intersect_addr, &intersect_size, &opcode_offset))
{
assert(bp_addr <= intersect_addr && intersect_addr < bp_addr + size);
assert(bp_addr < intersect_addr + intersect_size && intersect_addr + intersect_size <= bp_addr + size);
- assert(opcode_offset + intersect_size <= bp->GetByteSize());
+ assert(opcode_offset + intersect_size <= bp_sp->GetByteSize());
size_t buf_offset = intersect_addr - bp_addr;
- ::memcpy(buf + buf_offset, bp->GetSavedOpcodeBytes() + opcode_offset, intersect_size);
+ ::memcpy(buf + buf_offset, bp_sp->GetSavedOpcodeBytes() + opcode_offset, intersect_size);
}
}
}
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp
index 2b13fe8c364..ff05bc80dba 100644
--- a/lldb/source/Target/StackFrame.cpp
+++ b/lldb/source/Target/StackFrame.cpp
@@ -41,11 +41,11 @@ using namespace lldb_private;
StackFrame::StackFrame
(
- lldb::user_id_t frame_idx,
- lldb::user_id_t unwind_frame_index,
+ user_id_t frame_idx,
+ user_id_t unwind_frame_index,
Thread &thread,
- lldb::addr_t cfa,
- lldb::addr_t pc,
+ addr_t cfa,
+ addr_t pc,
const SymbolContext *sc_ptr
) :
m_thread (thread),
@@ -71,12 +71,12 @@ StackFrame::StackFrame
StackFrame::StackFrame
(
- lldb::user_id_t frame_idx,
- lldb::user_id_t unwind_frame_index,
+ user_id_t frame_idx,
+ user_id_t unwind_frame_index,
Thread &thread,
const RegisterContextSP &reg_context_sp,
- lldb::addr_t cfa,
- lldb::addr_t pc,
+ addr_t cfa,
+ addr_t pc,
const SymbolContext *sc_ptr
) :
m_thread (thread),
@@ -108,11 +108,11 @@ StackFrame::StackFrame
StackFrame::StackFrame
(
- lldb::user_id_t frame_idx,
- lldb::user_id_t unwind_frame_index,
+ user_id_t frame_idx,
+ user_id_t unwind_frame_index,
Thread &thread,
const RegisterContextSP &reg_context_sp,
- lldb::addr_t cfa,
+ addr_t cfa,
const Address& pc_addr,
const SymbolContext *sc_ptr
) :
@@ -515,9 +515,9 @@ StackFrame::GetInScopeVariableList (bool get_file_globals)
ValueObjectSP
StackFrame::GetValueForVariableExpressionPath (const char *var_expr_cstr,
- lldb::DynamicValueType use_dynamic,
+ DynamicValueType use_dynamic,
uint32_t options,
- lldb::VariableSP &var_sp,
+ VariableSP &var_sp,
Error &error)
{
@@ -643,7 +643,7 @@ StackFrame::GetValueForVariableExpressionPath (const char *var_expr_cstr,
if (!child_valobj_sp)
{
if (no_synth_child == false)
- child_valobj_sp = valobj_sp->GetSyntheticValue(lldb::eUseSyntheticFilter)->GetChildMemberWithName (child_name, true);
+ child_valobj_sp = valobj_sp->GetSyntheticValue(eUseSyntheticFilter)->GetChildMemberWithName (child_name, true);
if (no_synth_child || !child_valobj_sp)
{
@@ -667,7 +667,7 @@ StackFrame::GetValueForVariableExpressionPath (const char *var_expr_cstr,
}
// Remove the child name from the path
var_path.erase(0, child_name.GetLength());
- if (use_dynamic != lldb::eNoDynamicValues)
+ if (use_dynamic != eNoDynamicValues)
{
ValueObjectSP dynamic_value_sp(child_valobj_sp->GetDynamicValue(use_dynamic));
if (dynamic_value_sp)
@@ -728,12 +728,12 @@ StackFrame::GetValueForVariableExpressionPath (const char *var_expr_cstr,
if (no_synth_child == false
&&
ClangASTType::GetMinimumLanguage(valobj_sp->GetClangAST(),
- valobj_sp->GetClangType()) == lldb::eLanguageTypeObjC /* is ObjC pointer */
+ valobj_sp->GetClangType()) == eLanguageTypeObjC /* is ObjC pointer */
&&
ClangASTContext::IsPointerType(ClangASTType::GetPointeeType(valobj_sp->GetClangType())) == false /* is not double-ptr */)
{
// dereferencing ObjC variables is not valid.. so let's try and recur to synthetic children
- lldb::ValueObjectSP synthetic = valobj_sp->GetSyntheticValue(lldb::eUseSyntheticFilter);
+ ValueObjectSP synthetic = valobj_sp->GetSyntheticValue(eUseSyntheticFilter);
if (synthetic.get() == NULL /* no synthetic */
|| synthetic == valobj_sp) /* synthetic is the same as the original object */
{
@@ -805,7 +805,7 @@ StackFrame::GetValueForVariableExpressionPath (const char *var_expr_cstr,
}
else
{
- lldb::ValueObjectSP synthetic = valobj_sp->GetSyntheticValue(lldb::eUseSyntheticFilter);
+ ValueObjectSP synthetic = valobj_sp->GetSyntheticValue(eUseSyntheticFilter);
if (no_synth_child /* synthetic is forbidden */ ||
synthetic.get() == NULL /* no synthetic */
|| synthetic == valobj_sp) /* synthetic is the same as the original object */
@@ -847,7 +847,7 @@ StackFrame::GetValueForVariableExpressionPath (const char *var_expr_cstr,
// %i is the array index
var_path.erase(0, (end - var_path.c_str()) + 1);
separator_idx = var_path.find_first_of(".-[");
- if (use_dynamic != lldb::eNoDynamicValues)
+ if (use_dynamic != eNoDynamicValues)
{
ValueObjectSP dynamic_value_sp(child_valobj_sp->GetDynamicValue(use_dynamic));
if (dynamic_value_sp)
@@ -948,7 +948,7 @@ StackFrame::GetValueForVariableExpressionPath (const char *var_expr_cstr,
// %i is the index
var_path.erase(0, (real_end - var_path.c_str()) + 1);
separator_idx = var_path.find_first_of(".-[");
- if (use_dynamic != lldb::eNoDynamicValues)
+ if (use_dynamic != eNoDynamicValues)
{
ValueObjectSP dynamic_value_sp(child_valobj_sp->GetDynamicValue(use_dynamic));
if (dynamic_value_sp)
@@ -1077,7 +1077,7 @@ StackFrame::HasDebugInformation ()
ValueObjectSP
-StackFrame::GetValueObjectForFrameVariable (const VariableSP &variable_sp, lldb::DynamicValueType use_dynamic)
+StackFrame::GetValueObjectForFrameVariable (const VariableSP &variable_sp, DynamicValueType use_dynamic)
{
ValueObjectSP valobj_sp;
VariableList *var_list = GetVariableList (true);
@@ -1098,7 +1098,7 @@ StackFrame::GetValueObjectForFrameVariable (const VariableSP &variable_sp, lldb:
}
}
}
- if (use_dynamic != lldb::eNoDynamicValues && valobj_sp)
+ if (use_dynamic != eNoDynamicValues && valobj_sp)
{
ValueObjectSP dynamic_sp = valobj_sp->GetDynamicValue (use_dynamic);
if (dynamic_sp)
@@ -1108,7 +1108,7 @@ StackFrame::GetValueObjectForFrameVariable (const VariableSP &variable_sp, lldb:
}
ValueObjectSP
-StackFrame::TrackGlobalVariable (const VariableSP &variable_sp, lldb::DynamicValueType use_dynamic)
+StackFrame::TrackGlobalVariable (const VariableSP &variable_sp, DynamicValueType use_dynamic)
{
// Check to make sure we aren't already tracking this variable?
ValueObjectSP valobj_sp (GetValueObjectForFrameVariable (variable_sp, use_dynamic));
@@ -1254,10 +1254,12 @@ StackFrame::HasCachedData () const
return false;
}
-lldb::StackFrameSP
+StackFrameSP
StackFrame::GetSP ()
{
- return m_thread.GetStackFrameSPForStackFramePtr (this);
+ // This object contains an instrusive ref count base class so we can
+ // easily make a shared pointer to this object
+ return StackFrameSP (this);
}
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index ca9e936b2bb..d6c2dc2e086 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -146,7 +146,9 @@ Target::GetProcessSP () const
lldb::TargetSP
Target::GetSP()
{
- return m_debugger.GetTargetList().GetTargetSP(this);
+ // This object contains an instrusive ref count base class so we can
+ // easily make a shared pointer to this object
+ return TargetSP(this);
}
void
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index babb2dd6848..7c29da20481 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -970,7 +970,9 @@ Thread::DumpUsingSettingsFormat (Stream &strm, uint32_t frame_idx)
lldb::ThreadSP
Thread::GetSP ()
{
- return m_process.GetThreadList().GetThreadSPForThreadPtr(this);
+ // This object contains an instrusive ref count base class so we can
+ // easily make a shared pointer to this object
+ return ThreadSP(this);
}
diff --git a/lldb/source/Target/ThreadPlanTestCondition.cpp b/lldb/source/Target/ThreadPlanTestCondition.cpp
index 0c3c0e22caa..9c17ac3b61a 100644
--- a/lldb/source/Target/ThreadPlanTestCondition.cpp
+++ b/lldb/source/Target/ThreadPlanTestCondition.cpp
@@ -37,12 +37,11 @@ using namespace lldb_private;
// based on the value of \a type.
//----------------------------------------------------------------------
-ThreadPlanTestCondition::ThreadPlanTestCondition (
- Thread& thread,
- ExecutionContext &exe_ctx,
- ClangUserExpression *expression,
- lldb::BreakpointLocationSP break_loc_sp,
- bool stop_others) :
+ThreadPlanTestCondition::ThreadPlanTestCondition (Thread& thread,
+ ExecutionContext &exe_ctx,
+ ClangUserExpression *expression,
+ const BreakpointLocationSP &break_loc_sp,
+ bool stop_others) :
ThreadPlan (ThreadPlan::eKindTestCondition, "test condition", thread, eVoteNoOpinion, eVoteNoOpinion),
m_expression (expression),
m_exe_ctx (exe_ctx),
diff --git a/lldb/source/Utility/SharingPtr.cpp b/lldb/source/Utility/SharingPtr.cpp
index 3ee01285a3b..26c8d1ffd88 100644
--- a/lldb/source/Utility/SharingPtr.cpp
+++ b/lldb/source/Utility/SharingPtr.cpp
@@ -14,19 +14,6 @@ namespace lldb_private {
namespace imp
{
- template <class T>
- inline T
- increment(T& t)
- {
- return __sync_add_and_fetch(&t, 1);
- }
-
- template <class T>
- inline T
- decrement(T& t)
- {
- return __sync_add_and_fetch(&t, -1);
- }
shared_count::~shared_count()
{
OpenPOWER on IntegriCloud