diff options
author | Greg Clayton <gclayton@apple.com> | 2010-11-05 23:17:00 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2010-11-05 23:17:00 +0000 |
commit | efabb123aff69b36b3cd610ad9b98aafb6bc799d (patch) | |
tree | 94de36ae7b2cb915aded3ae58eee86c9e4b690c7 /lldb/source/API | |
parent | 2db0ea03ba60111bcf417f1a12e8781425ec276a (diff) | |
download | bcm5719-llvm-efabb123aff69b36b3cd610ad9b98aafb6bc799d.tar.gz bcm5719-llvm-efabb123aff69b36b3cd610ad9b98aafb6bc799d.zip |
Added copy constructors and assignment operators to all lldb::SB* classes
so we don't end up with weak exports with some compilers.
llvm-svn: 118312
Diffstat (limited to 'lldb/source/API')
-rw-r--r-- | lldb/source/API/SBBlock.cpp | 12 | ||||
-rw-r--r-- | lldb/source/API/SBBreakpointLocation.cpp | 17 | ||||
-rw-r--r-- | lldb/source/API/SBBroadcaster.cpp | 96 | ||||
-rw-r--r-- | lldb/source/API/SBCommandInterpreter.cpp | 12 | ||||
-rw-r--r-- | lldb/source/API/SBCommandReturnObject.cpp | 21 | ||||
-rw-r--r-- | lldb/source/API/SBCompileUnit.cpp | 13 | ||||
-rw-r--r-- | lldb/source/API/SBDebugger.cpp | 17 | ||||
-rw-r--r-- | lldb/source/API/SBEvent.cpp | 40 | ||||
-rw-r--r-- | lldb/source/API/SBFrame.cpp | 13 | ||||
-rw-r--r-- | lldb/source/API/SBFunction.cpp | 12 | ||||
-rw-r--r-- | lldb/source/API/SBInstruction.cpp | 13 | ||||
-rw-r--r-- | lldb/source/API/SBInstructionList.cpp | 14 | ||||
-rw-r--r-- | lldb/source/API/SBListener.cpp | 49 | ||||
-rw-r--r-- | lldb/source/API/SBModule.cpp | 13 | ||||
-rw-r--r-- | lldb/source/API/SBProcess.cpp | 8 | ||||
-rw-r--r-- | lldb/source/API/SBSourceManager.cpp | 37 | ||||
-rw-r--r-- | lldb/source/API/SBStringList.cpp | 20 | ||||
-rw-r--r-- | lldb/source/API/SBSymbol.cpp | 13 | ||||
-rw-r--r-- | lldb/source/API/SBTarget.cpp | 8 | ||||
-rw-r--r-- | lldb/source/API/SBType.cpp | 45 | ||||
-rw-r--r-- | lldb/source/API/SBValue.cpp | 13 |
21 files changed, 390 insertions, 96 deletions
diff --git a/lldb/source/API/SBBlock.cpp b/lldb/source/API/SBBlock.cpp index 6898a77496f..32f102181f2 100644 --- a/lldb/source/API/SBBlock.cpp +++ b/lldb/source/API/SBBlock.cpp @@ -28,6 +28,18 @@ SBBlock::SBBlock (lldb_private::Block *lldb_object_ptr) : { } +SBBlock::SBBlock(const SBBlock &rhs) : + m_opaque_ptr (rhs.m_opaque_ptr) +{ +} + +const SBBlock & +SBBlock::operator = (const SBBlock &rhs) +{ + m_opaque_ptr = rhs.m_opaque_ptr; + return *this; +} + SBBlock::~SBBlock () { m_opaque_ptr = NULL; diff --git a/lldb/source/API/SBBreakpointLocation.cpp b/lldb/source/API/SBBreakpointLocation.cpp index cb936241efa..ab75b4e39c2 100644 --- a/lldb/source/API/SBBreakpointLocation.cpp +++ b/lldb/source/API/SBBreakpointLocation.cpp @@ -25,7 +25,8 @@ using namespace lldb; using namespace lldb_private; -SBBreakpointLocation::SBBreakpointLocation () +SBBreakpointLocation::SBBreakpointLocation () : + m_opaque_sp () { } @@ -43,6 +44,20 @@ SBBreakpointLocation::SBBreakpointLocation (const lldb::BreakpointLocationSP &br } } +SBBreakpointLocation::SBBreakpointLocation(const SBBreakpointLocation &rhs) : + m_opaque_sp (rhs.m_opaque_sp) +{ +} + +const SBBreakpointLocation & +SBBreakpointLocation::operator = (const SBBreakpointLocation &rhs) +{ + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; +} + + SBBreakpointLocation::~SBBreakpointLocation () { } diff --git a/lldb/source/API/SBBroadcaster.cpp b/lldb/source/API/SBBroadcaster.cpp index 348b710bdd8..9978d825313 100644 --- a/lldb/source/API/SBBroadcaster.cpp +++ b/lldb/source/API/SBBroadcaster.cpp @@ -20,36 +20,49 @@ using namespace lldb_private; SBBroadcaster::SBBroadcaster () : - m_opaque (NULL), - m_opaque_owned (false) + m_opaque_sp (), + m_opaque_ptr (NULL) { - Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API | LIBLLDB_LOG_VERBOSE); - - if (log) - log->Printf ("SBBroadcastetr::SBBroadcaster () => SBBroadcaster(%p)", this); } - SBBroadcaster::SBBroadcaster (const char *name) : - m_opaque (new Broadcaster (name)), - m_opaque_owned (true) + m_opaque_sp (new Broadcaster (name)), + m_opaque_ptr (NULL) { + m_opaque_ptr = m_opaque_sp.get(); Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API | LIBLLDB_LOG_VERBOSE); if (log) log->Printf ("SBBroadcaster::SBBroadcaster (name=\"%s\") => SBBroadcaster(%p)", - name, m_opaque); + name, m_opaque_ptr); } SBBroadcaster::SBBroadcaster (lldb_private::Broadcaster *broadcaster, bool owns) : - m_opaque (broadcaster), - m_opaque_owned (owns) + m_opaque_sp (owns ? broadcaster : NULL), + m_opaque_ptr (broadcaster) { Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API | LIBLLDB_LOG_VERBOSE); if (log) - log->Printf ("SBBroadcaster::SBBroadcaster (broadcaster=%p, bool owns=%i) " - " => SBBroadcaster(%p)", broadcaster, owns, m_opaque); + log->Printf ("SBBroadcaster::SBBroadcaster (broadcaster=%p, bool owns=%i) => SBBroadcaster(%p)", + broadcaster, owns, m_opaque_ptr); +} + +SBBroadcaster::SBBroadcaster (const SBBroadcaster &rhs) : + m_opaque_sp (rhs.m_opaque_sp), + m_opaque_ptr (rhs.m_opaque_ptr) +{ +} + +const SBBroadcaster & +SBBroadcaster::operator = (const SBBroadcaster &rhs) +{ + if (this != &rhs) + { + m_opaque_sp = rhs.m_opaque_sp; + m_opaque_ptr = rhs.m_opaque_ptr; + } + return *this; } SBBroadcaster::~SBBroadcaster() @@ -63,15 +76,15 @@ SBBroadcaster::BroadcastEventByType (uint32_t event_type, bool unique) Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); if (log) - log->Printf ("SBBroadcaster(%p)::BroadcastEventByType (event_type=0x%8.8x, unique=%i)", m_opaque, event_type, unique); + log->Printf ("SBBroadcaster(%p)::BroadcastEventByType (event_type=0x%8.8x, unique=%i)", m_opaque_ptr, event_type, unique); - if (m_opaque == NULL) + if (m_opaque_ptr == NULL) return; if (unique) - m_opaque->BroadcastEventIfUnique (event_type); + m_opaque_ptr->BroadcastEventIfUnique (event_type); else - m_opaque->BroadcastEvent (event_type); + m_opaque_ptr->BroadcastEvent (event_type); } void @@ -80,16 +93,16 @@ SBBroadcaster::BroadcastEvent (const SBEvent &event, bool unique) Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); if (log) - log->Printf ("SBBroadcaster(%p)::BroadcastEventByType (SBEvent(%p), unique=%i)", m_opaque, event.get(), unique); + log->Printf ("SBBroadcaster(%p)::BroadcastEventByType (SBEvent(%p), unique=%i)", m_opaque_ptr, event.get(), unique); - if (m_opaque == NULL) + if (m_opaque_ptr == NULL) return; EventSP event_sp = event.GetSP (); if (unique) - m_opaque->BroadcastEventIfUnique (event_sp); + m_opaque_ptr->BroadcastEventIfUnique (event_sp); else - m_opaque->BroadcastEvent (event_sp); + m_opaque_ptr->BroadcastEvent (event_sp); } void @@ -97,74 +110,75 @@ SBBroadcaster::AddInitialEventsToListener (const SBListener &listener, uint32_t { Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); if (log) - log->Printf ("SBBroadcaster(%p)::AddInitialEventsToListener (SBListener(%p), event_mask=0x%8.8x)", m_opaque, listener.get(), requested_events); - if (m_opaque) - m_opaque->AddInitialEventsToListener (listener.get(), requested_events); + log->Printf ("SBBroadcaster(%p)::AddInitialEventsToListener (SBListener(%p), event_mask=0x%8.8x)", m_opaque_ptr, listener.get(), requested_events); + if (m_opaque_ptr) + m_opaque_ptr->AddInitialEventsToListener (listener.get(), requested_events); } uint32_t SBBroadcaster::AddListener (const SBListener &listener, uint32_t event_mask) { - if (m_opaque) - return m_opaque->AddListener (listener.get(), event_mask); + if (m_opaque_ptr) + return m_opaque_ptr->AddListener (listener.get(), event_mask); return 0; } const char * SBBroadcaster::GetName () const { - if (m_opaque) - return m_opaque->GetBroadcasterName().GetCString(); + if (m_opaque_ptr) + return m_opaque_ptr->GetBroadcasterName().GetCString(); return NULL; } bool SBBroadcaster::EventTypeHasListeners (uint32_t event_type) { - if (m_opaque) - return m_opaque->EventTypeHasListeners (event_type); + if (m_opaque_ptr) + return m_opaque_ptr->EventTypeHasListeners (event_type); return false; } bool SBBroadcaster::RemoveListener (const SBListener &listener, uint32_t event_mask) { - if (m_opaque) - return m_opaque->RemoveListener (listener.get(), event_mask); + if (m_opaque_ptr) + return m_opaque_ptr->RemoveListener (listener.get(), event_mask); return false; } Broadcaster * SBBroadcaster::get () const { - return m_opaque; + return m_opaque_ptr; } void SBBroadcaster::reset (Broadcaster *broadcaster, bool owns) { - if (m_opaque && m_opaque_owned) - delete m_opaque; - m_opaque = broadcaster; - m_opaque_owned = owns; + if (owns) + m_opaque_sp.reset (broadcaster); + else + m_opaque_sp.reset (); + m_opaque_ptr = broadcaster; } bool SBBroadcaster::IsValid () const { - return m_opaque != NULL; + return m_opaque_ptr != NULL; } bool SBBroadcaster::operator == (const SBBroadcaster &rhs) const { - return m_opaque == rhs.m_opaque; + return m_opaque_ptr == rhs.m_opaque_ptr; } bool SBBroadcaster::operator != (const SBBroadcaster &rhs) const { - return m_opaque != rhs.m_opaque; + return m_opaque_ptr != rhs.m_opaque_ptr; } diff --git a/lldb/source/API/SBCommandInterpreter.cpp b/lldb/source/API/SBCommandInterpreter.cpp index d5ccd20e417..3f467f72f48 100644 --- a/lldb/source/API/SBCommandInterpreter.cpp +++ b/lldb/source/API/SBCommandInterpreter.cpp @@ -40,6 +40,18 @@ SBCommandInterpreter::SBCommandInterpreter (CommandInterpreter *interpreter) : " => SBCommandInterpreter(%p)", interpreter, m_opaque_ptr); } +SBCommandInterpreter::SBCommandInterpreter(const SBCommandInterpreter &rhs) : + m_opaque_ptr (rhs.m_opaque_ptr) +{ +} + +const SBCommandInterpreter & +SBCommandInterpreter::operator = (const SBCommandInterpreter &rhs) +{ + m_opaque_ptr = rhs.m_opaque_ptr; + return *this; +} + SBCommandInterpreter::~SBCommandInterpreter () { } diff --git a/lldb/source/API/SBCommandReturnObject.cpp b/lldb/source/API/SBCommandReturnObject.cpp index 778ecb0e4c3..b9981fb2c96 100644 --- a/lldb/source/API/SBCommandReturnObject.cpp +++ b/lldb/source/API/SBCommandReturnObject.cpp @@ -21,6 +21,27 @@ SBCommandReturnObject::SBCommandReturnObject () : { } +SBCommandReturnObject::SBCommandReturnObject (const SBCommandReturnObject &rhs): + m_opaque_ap () +{ + if (rhs.m_opaque_ap.get()) + m_opaque_ap.reset (new CommandReturnObject (*rhs.m_opaque_ap)); +} + +const SBCommandReturnObject & +SBCommandReturnObject::operator = (const SBCommandReturnObject &rhs) +{ + if (this != &rhs) + { + if (rhs.m_opaque_ap.get()) + m_opaque_ap.reset (new CommandReturnObject (*rhs.m_opaque_ap)); + else + m_opaque_ap.reset(); + } + return *this; +} + + SBCommandReturnObject::~SBCommandReturnObject () { // m_opaque_ap will automatically delete any pointer it owns diff --git a/lldb/source/API/SBCompileUnit.cpp b/lldb/source/API/SBCompileUnit.cpp index 39505075847..a103fc37124 100644 --- a/lldb/source/API/SBCompileUnit.cpp +++ b/lldb/source/API/SBCompileUnit.cpp @@ -29,6 +29,19 @@ SBCompileUnit::SBCompileUnit (lldb_private::CompileUnit *lldb_object_ptr) : { } +SBCompileUnit::SBCompileUnit(const SBCompileUnit &rhs) : + m_opaque_ptr (rhs.m_opaque_ptr) +{ +} + +const SBCompileUnit & +SBCompileUnit::operator = (const SBCompileUnit &rhs) +{ + m_opaque_ptr = rhs.m_opaque_ptr; + return *this; +} + + SBCompileUnit::~SBCompileUnit () { m_opaque_ptr = NULL; diff --git a/lldb/source/API/SBDebugger.cpp b/lldb/source/API/SBDebugger.cpp index cf49d754da7..b8190b74d6b 100644 --- a/lldb/source/API/SBDebugger.cpp +++ b/lldb/source/API/SBDebugger.cpp @@ -85,6 +85,21 @@ SBDebugger::SBDebugger () : { } +SBDebugger::SBDebugger(const SBDebugger &rhs) : + m_opaque_sp (rhs.m_opaque_sp) +{ +} + +SBDebugger & +SBDebugger::operator = (const SBDebugger &rhs) +{ + if (this != &rhs) + { + m_opaque_sp = rhs.m_opaque_sp; + } + return *this; +} + SBDebugger::~SBDebugger () { } @@ -355,7 +370,7 @@ SBSourceManager & SBDebugger::GetSourceManager () { static SourceManager g_lldb_source_manager; - static SBSourceManager g_sb_source_manager (g_lldb_source_manager); + static SBSourceManager g_sb_source_manager (&g_lldb_source_manager); return g_sb_source_manager; } diff --git a/lldb/source/API/SBEvent.cpp b/lldb/source/API/SBEvent.cpp index a976c42037a..9c7a39232a8 100644 --- a/lldb/source/API/SBEvent.cpp +++ b/lldb/source/API/SBEvent.cpp @@ -25,22 +25,40 @@ using namespace lldb_private; SBEvent::SBEvent () : m_event_sp (), - m_opaque (NULL) + m_opaque_ptr (NULL) { } SBEvent::SBEvent (uint32_t event_type, const char *cstr, uint32_t cstr_len) : m_event_sp (new Event (event_type, new EventDataBytes (cstr, cstr_len))), - m_opaque (m_event_sp.get()) + m_opaque_ptr (m_event_sp.get()) { } SBEvent::SBEvent (EventSP &event_sp) : m_event_sp (event_sp), - m_opaque (event_sp.get()) + m_opaque_ptr (event_sp.get()) { } +SBEvent::SBEvent (const SBEvent &rhs) : + m_event_sp (rhs.m_event_sp), + m_opaque_ptr (rhs.m_opaque_ptr) +{ + +} + +const SBEvent & +SBEvent::operator = (const SBEvent &rhs) +{ + if (this != &rhs) + { + m_event_sp = rhs.m_event_sp; + m_opaque_ptr = rhs.m_opaque_ptr; + } + return *this; +} + SBEvent::~SBEvent() { } @@ -136,31 +154,31 @@ SBEvent::get() const // There is a dangerous accessor call GetSharedPtr which can be used, so if // we have anything valid in m_event_sp, we must use that since if it gets // used by a function that puts something in there, then it won't update - // m_opaque... + // m_opaque_ptr... if (m_event_sp) - m_opaque = m_event_sp.get(); + m_opaque_ptr = m_event_sp.get(); - return m_opaque; + return m_opaque_ptr; } void SBEvent::reset (EventSP &event_sp) { m_event_sp = event_sp; - m_opaque = m_event_sp.get(); + m_opaque_ptr = m_event_sp.get(); } void SBEvent::reset (Event* event_ptr) { - m_opaque = event_ptr; + m_opaque_ptr = event_ptr; m_event_sp.reset(); } bool SBEvent::IsValid() const { - // Do NOT use m_opaque directly!!! Must use the SBEvent::get() + // Do NOT use m_opaque_ptr directly!!! Must use the SBEvent::get() // accessor. See comments in SBEvent::get().... return SBEvent::get() != NULL; @@ -186,7 +204,7 @@ SBEvent::GetDescription (SBStream &description) if (get()) { description.ref(); - m_opaque->Dump (description.get()); + m_opaque_ptr->Dump (description.get()); } else description.Printf ("No value"); @@ -200,7 +218,7 @@ SBEvent::GetDescription (SBStream &description) const if (get()) { description.ref(); - m_opaque->Dump (description.get()); + m_opaque_ptr->Dump (description.get()); } else description.Printf ("No value"); diff --git a/lldb/source/API/SBFrame.cpp b/lldb/source/API/SBFrame.cpp index c0f2f558c67..9701ada371a 100644 --- a/lldb/source/API/SBFrame.cpp +++ b/lldb/source/API/SBFrame.cpp @@ -63,6 +63,19 @@ SBFrame::SBFrame (const lldb::StackFrameSP &lldb_object_sp) : } } +SBFrame::SBFrame(const SBFrame &rhs) : + m_opaque_sp (rhs.m_opaque_sp) +{ +} + +const SBFrame & +SBFrame::operator = (const SBFrame &rhs) +{ + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; +} + SBFrame::~SBFrame() { } diff --git a/lldb/source/API/SBFunction.cpp b/lldb/source/API/SBFunction.cpp index 34f879af709..79b7543517b 100644 --- a/lldb/source/API/SBFunction.cpp +++ b/lldb/source/API/SBFunction.cpp @@ -32,6 +32,18 @@ SBFunction::SBFunction (lldb_private::Function *lldb_object_ptr) : { } +SBFunction::SBFunction (const lldb::SBFunction &rhs) : + m_opaque_ptr (rhs.m_opaque_ptr) +{ +} + +const SBFunction & +SBFunction::operator = (const SBFunction &rhs) +{ + m_opaque_ptr = rhs.m_opaque_ptr; + return *this; +} + SBFunction::~SBFunction () { m_opaque_ptr = NULL; diff --git a/lldb/source/API/SBInstruction.cpp b/lldb/source/API/SBInstruction.cpp index 13d68a1cd34..01718a3d844 100644 --- a/lldb/source/API/SBInstruction.cpp +++ b/lldb/source/API/SBInstruction.cpp @@ -28,6 +28,19 @@ SBInstruction::SBInstruction (const lldb::InstructionSP& inst_sp) : { } +SBInstruction::SBInstruction(const SBInstruction &rhs) : + m_opaque_sp (rhs.m_opaque_sp) +{ +} + +const SBInstruction & +SBInstruction::operator = (const SBInstruction &rhs) +{ + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; +} + SBInstruction::~SBInstruction () { } diff --git a/lldb/source/API/SBInstructionList.cpp b/lldb/source/API/SBInstructionList.cpp index b27ddfa5011..ce70d95b0ad 100644 --- a/lldb/source/API/SBInstructionList.cpp +++ b/lldb/source/API/SBInstructionList.cpp @@ -22,6 +22,20 @@ SBInstructionList::SBInstructionList () : { } +SBInstructionList::SBInstructionList(const SBInstructionList &rhs) : + m_opaque_sp (rhs.m_opaque_sp) +{ +} + +const SBInstructionList & +SBInstructionList::operator = (const SBInstructionList &rhs) +{ + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; +} + + SBInstructionList::~SBInstructionList () { } diff --git a/lldb/source/API/SBListener.cpp b/lldb/source/API/SBListener.cpp index b6fbcf6dba7..00b98b260db 100644 --- a/lldb/source/API/SBListener.cpp +++ b/lldb/source/API/SBListener.cpp @@ -23,15 +23,17 @@ using namespace lldb_private; SBListener::SBListener () : - m_opaque_ptr (NULL), - m_opaque_ptr_owned (false) + m_opaque_sp (), + m_opaque_ptr (NULL) { } SBListener::SBListener (const char *name) : - m_opaque_ptr (new Listener (name)), - m_opaque_ptr_owned (true) + m_opaque_sp (new Listener (name)), + m_opaque_ptr (NULL) { + m_opaque_ptr = m_opaque_sp.get(); + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); if (log) @@ -39,22 +41,32 @@ SBListener::SBListener (const char *name) : name, m_opaque_ptr); } -SBListener::SBListener (Listener &listener) : - m_opaque_ptr (&listener), - m_opaque_ptr_owned (false) + +SBListener::SBListener (const SBListener &rhs) : + m_opaque_sp (rhs.m_opaque_sp), + m_opaque_ptr (rhs.m_opaque_ptr) { } -SBListener::~SBListener () +const lldb::SBListener & +SBListener::operator = (const lldb::SBListener &rhs) { - if (m_opaque_ptr_owned) + if (this != &rhs) { - if (m_opaque_ptr) - { - delete m_opaque_ptr; - m_opaque_ptr = NULL; - } + m_opaque_sp = rhs.m_opaque_sp; + m_opaque_ptr = rhs.m_opaque_ptr; } + return *this; +} + +SBListener::SBListener (Listener &listener) : + m_opaque_sp (), + m_opaque_ptr (&listener) +{ +} + +SBListener::~SBListener () +{ } bool @@ -365,11 +377,12 @@ SBListener::get() const } void -SBListener::reset(Listener *listener, bool transfer_ownership) +SBListener::reset(Listener *listener, bool owns) { - if (m_opaque_ptr_owned && m_opaque_ptr) - delete m_opaque_ptr; - m_opaque_ptr_owned = transfer_ownership; + if (owns) + m_opaque_sp.reset (listener); + else + m_opaque_sp.reset (); m_opaque_ptr = listener; } diff --git a/lldb/source/API/SBModule.cpp b/lldb/source/API/SBModule.cpp index c6c2d751183..a631412c09b 100644 --- a/lldb/source/API/SBModule.cpp +++ b/lldb/source/API/SBModule.cpp @@ -30,6 +30,19 @@ SBModule::SBModule (const lldb::ModuleSP& module_sp) : { } +SBModule::SBModule(const SBModule &rhs) : + m_opaque_sp (rhs.m_opaque_sp) +{ +} + +const SBModule & +SBModule::operator = (const SBModule &rhs) +{ + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; +} + SBModule::~SBModule () { } diff --git a/lldb/source/API/SBProcess.cpp b/lldb/source/API/SBProcess.cpp index 0c52b6b15d1..8202a320c71 100644 --- a/lldb/source/API/SBProcess.cpp +++ b/lldb/source/API/SBProcess.cpp @@ -61,6 +61,14 @@ SBProcess::SBProcess (const lldb::ProcessSP &process_sp) : { } +const SBProcess& +SBProcess::operator = (const SBProcess& rhs) +{ + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; +} + //---------------------------------------------------------------------- // Destructor //---------------------------------------------------------------------- diff --git a/lldb/source/API/SBSourceManager.cpp b/lldb/source/API/SBSourceManager.cpp index 701665edb46..32f792d8220 100644 --- a/lldb/source/API/SBSourceManager.cpp +++ b/lldb/source/API/SBSourceManager.cpp @@ -20,8 +20,8 @@ using namespace lldb; using namespace lldb_private; -SBSourceManager::SBSourceManager (SourceManager& source_manager) : - m_opaque_ref (source_manager) +SBSourceManager::SBSourceManager (SourceManager* source_manager) : + m_opaque_ptr (source_manager) { } @@ -29,6 +29,18 @@ SBSourceManager::~SBSourceManager() { } +SBSourceManager::SBSourceManager(const SBSourceManager &rhs) : + m_opaque_ptr (rhs.m_opaque_ptr) +{ +} + +const SBSourceManager & +SBSourceManager::operator = (const SBSourceManager &rhs) +{ + m_opaque_ptr = rhs.m_opaque_ptr; + return *this; +} + size_t SBSourceManager::DisplaySourceLinesWithLineNumbers ( @@ -40,6 +52,9 @@ SBSourceManager::DisplaySourceLinesWithLineNumbers FILE *f ) { + if (m_opaque_ptr == NULL) + return 0; + if (f == NULL) return 0; @@ -48,18 +63,12 @@ SBSourceManager::DisplaySourceLinesWithLineNumbers StreamFile str (f); - return m_opaque_ref.DisplaySourceLinesWithLineNumbers (*file, - line, - context_before, - context_after, - current_line_cstr, - &str); + return m_opaque_ptr->DisplaySourceLinesWithLineNumbers (*file, + line, + context_before, + context_after, + current_line_cstr, + &str); } return 0; } - -SourceManager & -SBSourceManager::GetLLDBManager () -{ - return m_opaque_ref; -} diff --git a/lldb/source/API/SBStringList.cpp b/lldb/source/API/SBStringList.cpp index beb760632fa..129d2f4c11f 100644 --- a/lldb/source/API/SBStringList.cpp +++ b/lldb/source/API/SBStringList.cpp @@ -34,21 +34,23 @@ SBStringList::SBStringList (const SBStringList &rhs) : } - -SBStringList::~SBStringList () -{ -} - - const SBStringList & SBStringList::operator = (const SBStringList &rhs) { - if (rhs.IsValid()) - m_opaque_ap.reset (new lldb_private::StringList(*rhs)); - + if (this != &rhs) + { + if (rhs.IsValid()) + m_opaque_ap.reset(new lldb_private::StringList(*rhs)); + else + m_opaque_ap.reset(); + } return *this; } +SBStringList::~SBStringList () +{ +} + const lldb_private::StringList * SBStringList::operator->() const { diff --git a/lldb/source/API/SBSymbol.cpp b/lldb/source/API/SBSymbol.cpp index f5b09c9506a..b8dc521636c 100644 --- a/lldb/source/API/SBSymbol.cpp +++ b/lldb/source/API/SBSymbol.cpp @@ -29,6 +29,19 @@ SBSymbol::SBSymbol (lldb_private::Symbol *lldb_object_ptr) : { } +SBSymbol::SBSymbol (const lldb::SBSymbol &rhs) : + m_opaque_ptr (rhs.m_opaque_ptr) +{ +} + +const SBSymbol & +SBSymbol::operator = (const SBSymbol &rhs) +{ + m_opaque_ptr = rhs.m_opaque_ptr; + return *this; +} + + SBSymbol::~SBSymbol () { m_opaque_ptr = NULL; diff --git a/lldb/source/API/SBTarget.cpp b/lldb/source/API/SBTarget.cpp index 72aef3fd2fe..0154d601bbd 100644 --- a/lldb/source/API/SBTarget.cpp +++ b/lldb/source/API/SBTarget.cpp @@ -64,6 +64,14 @@ SBTarget::SBTarget(const TargetSP& target_sp) : { } +const SBTarget& +SBTarget::operator = (const SBTarget& rhs) +{ + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; +} + //---------------------------------------------------------------------- // Destructor //---------------------------------------------------------------------- diff --git a/lldb/source/API/SBType.cpp b/lldb/source/API/SBType.cpp index c94b0e450a1..271049d3d65 100644 --- a/lldb/source/API/SBType.cpp +++ b/lldb/source/API/SBType.cpp @@ -40,7 +40,21 @@ SBType::SBType (void *ast, void *clang_type) : m_type (clang_type) { } - + +SBType::SBType (const SBType &rhs) : + m_ast (rhs.m_ast), + m_type (rhs.m_type) +{ +} + +const SBType & +SBType::operator =(const SBType &rhs) +{ + m_ast = rhs.m_ast; + m_type = rhs.m_type; + return *this; +} + SBType::~SBType () { } @@ -212,6 +226,35 @@ SBTypeMember::SBTypeMember () : { } +SBTypeMember::SBTypeMember (const SBTypeMember &rhs) : + m_ast (rhs.m_ast), + m_parent_type (rhs.m_parent_type), + m_member_type (rhs.m_member_type), + m_member_name (rhs.m_member_name), + m_offset (rhs.m_offset), + m_bit_size (rhs.m_bit_size), + m_bit_offset (rhs.m_bit_offset), + m_is_base_class (rhs.m_is_base_class) +{ +} + +const SBTypeMember& +SBTypeMember::operator =(const SBTypeMember &rhs) +{ + if (this != &rhs) + { + m_ast = rhs.m_ast; + m_parent_type = rhs.m_parent_type; + m_member_type = rhs.m_member_type; + m_member_name = rhs.m_member_name; + m_offset = rhs.m_offset; + m_bit_size = rhs.m_bit_size; + m_bit_offset = rhs.m_bit_offset; + m_is_base_class = rhs.m_is_base_class; + } + return *this; +} + SBTypeMember::~SBTypeMember () { SetName (NULL); diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp index 54f822ee574..a4b3db2cc14 100644 --- a/lldb/source/API/SBValue.cpp +++ b/lldb/source/API/SBValue.cpp @@ -44,6 +44,19 @@ SBValue::SBValue (const lldb::ValueObjectSP &value_sp) : { } +SBValue::SBValue(const SBValue &rhs) : + m_opaque_sp (rhs.m_opaque_sp) +{ +} + +const SBValue & +SBValue::operator = (const SBValue &rhs) +{ + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; +} + SBValue::~SBValue() { } |