summaryrefslogtreecommitdiffstats
path: root/lldb/source/Utility/SharingPtr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* <rdar://problem/15182550>Enrico Granata2013-10-181-2/+10
| | | | | | | | | | | | | | | | | | | Removing Host/Atomic.h This header file was not being copied as part of our public API headers and this in turn was causing any plugin to link against LLDB.framework, since SharingPtr.h depends on it Out of several possible options to fix this issue, the cleanest one is to revert LLDB to use std::atomic<>, as we are a C++11 project and should take advantage of it The original rationale for going from std::atomic to Host/Atomic.h was that MSVC++ fails to link in CLR mode when std::atomic is used This is a very Visual Studio/.net specific issue, which hopefully will be fixed Until them, to allow Windows development to proceed, we are going with a targeted solution where we #ifdef include the Windows specific calls, and let everyone else use the proper atomic support, as should be If there is an unavoidable need for a LLDB-specific atomic header, the right way to go at it would be to make an API/lldb-atomic.h header and #ifdef the Windows dependency there The FormatManager should not need to conditionalize use of std::atomic<>, as other parts of the LLDB internals are successfully using atomic (Address and IRExecutionUnit), so this Win-specific hack is limited to SharingPtr llvm-svn: 192993
* Added a ModuleList::Destroy() method which will reclaim the std::vectorGreg Clayton2012-01-271-5/+10
| | | | | | | | | | memory by doing a swap. Also added a few utilty functions that can be enabled for debugging issues with modules staying around too long when external clients still have references to them. llvm-svn: 149138
* Allow a way to track all allocations for our intrusive ref counted pointers.Greg Clayton2012-01-191-0/+111
| | | | | | | It is disabled by default, but can be enabled to track down shared pointer cycles. llvm-svn: 148461
* Adopt the intrusive pointers in:Greg Clayton2011-09-171-13/+0
| | | | | | | | | | | | lldb_private::Breakpoint lldb_private::BreakpointLocations lldb_private::BreakpointSite lldb_private::Debugger lldb_private::StackFrame lldb_private::Thread lldb_private::Target llvm-svn: 139985
* Convert lldb::ModuleSP to use an instrusive ref counted pointer.Greg Clayton2011-09-171-27/+29
| | | | | | | | | We had some cases where getting the shared pointer for a module from the global module list was causing a performance issue when debugging with DWARF in .o files. Now that the module uses intrusive ref counts, we can easily convert any pointer to a shared pointer. llvm-svn: 139983
* Cleaned a few build related things up:Greg Clayton2010-09-241-1/+1
| | | | | | | | | | Added a virtual destructor to ClangUtilityFunction with a body to it cleans itself up. Moved our SharingPtr into the lldb_private namespace to keep it easy to make an exports file that exports only what is needed ("lldb::*"). llvm-svn: 114771
* Move SharingPtr.h into include/.Eli Friedman2010-06-121-1/+1
| | | | llvm-svn: 105896
* Switched over to using the new lldb::SharingPtr from Howard Hinnant. Greg Clayton2010-06-121-0/+53
We need to put this in LLDB since we need to vend this in our API because our public API uses shared pointers to our private objects. Removed a deprecated file: include/lldb/Host/Types.h Added the new SharingPtr.cpp/.h files into source/Utility. Added a shell script build phase that fixes up all headers in the LLDB.framework. llvm-svn: 105895
OpenPOWER on IntegriCloud