diff options
author | Jim Ingham <jingham@apple.com> | 2013-07-31 02:19:15 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2013-07-31 02:19:15 +0000 |
commit | 56d404281f8f94dd2d1915b91111e8db8e90e857 (patch) | |
tree | 672f744f93e4a61bf5d5028bfc5a335231454fe1 /lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp | |
parent | 75a5ba7ed046d0c69db712406e646ef11b9e52a3 (diff) | |
download | bcm5719-llvm-56d404281f8f94dd2d1915b91111e8db8e90e857.tar.gz bcm5719-llvm-56d404281f8f94dd2d1915b91111e8db8e90e857.zip |
The DisassemblerLLVMC has a retain cycle - the InstructionLLVMC's contained in its instruction
list have a shared pointer back to their DisassemblerLLVMC. This checkin force clears the InstructionList
in all the places we use the DisassemblerSP to stop the leaking for now. I'll go back and fix this
for real when I have time to do so.
<rdar://problem/14581918>
llvm-svn: 187473
Diffstat (limited to 'lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp')
-rw-r--r-- | lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp b/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp index b20f732133b..c93dea9b5d3 100644 --- a/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp +++ b/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp @@ -264,6 +264,9 @@ UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly (AddressRange& } } } + // FIXME: The DisassemblerLLVMC has a reference cycle and won't go away if it has any active instructions. + // I'll fix that but for now, just clear the list and it will go away nicely. + disasm_sp->GetInstructionList().Clear(); } if (log && log->GetVerbose ()) |