lldb::SBTarget and lldb::SBProcess are now thread hardened. They both still

contain shared pointers to the lldb_private::Target and lldb_private::Process
objects respectively as we won't want the target or process just going away.

Also cleaned up the lldb::SBModule to remove dangerous pointer accessors.

For any code the public API files, we should always be grabbing shared 
pointers to any objects for the current class, and any other classes prior
to running code with them.

llvm-svn: 149238
This commit is contained in:
Greg Clayton
2012-01-30 09:04:36 +00:00
parent 2962e7b656
commit acdbe81637
7 changed files with 447 additions and 389 deletions

View File

@@ -193,49 +193,18 @@ SBModule::operator != (const SBModule &rhs) const
return false;
}
lldb::ModuleSP &
SBModule::operator *()
{
return m_opaque_sp;
}
lldb_private::Module *
SBModule::operator ->()
{
return m_opaque_sp.get();
}
const lldb_private::Module *
SBModule::operator ->() const
{
return m_opaque_sp.get();
}
lldb_private::Module *
SBModule::get()
{
return m_opaque_sp.get();
}
const lldb_private::Module *
SBModule::get() const
{
return m_opaque_sp.get();
}
const lldb::ModuleSP &
SBModule::get_sp() const
ModuleSP
SBModule::GetSP () const
{
return m_opaque_sp;
}
void
SBModule::SetModule (const lldb::ModuleSP& module_sp)
SBModule::SetSP (const ModuleSP &module_sp)
{
m_opaque_sp = module_sp;
}
SBAddress
SBModule::ResolveFileAddress (lldb::addr_t vm_addr)
{