Instructions generated by a disassembler can now
keep a shared pointer to their disassembler.  This
is important for the LLVM-C disassembler because
it needs to lock its parent in order to disassemble
itself.

This means that every interface that returned a
Disassembler* needs to return a DisassemblerSP, so
that the instructions and any external owners share
the same reference count on the object.  I changed
all clients to use this shared pointer, which also
plugged a few leaks.

<rdar://problem/12002822>

llvm-svn: 161123
diff --git a/lldb/source/Expression/ClangExpressionParser.cpp b/lldb/source/Expression/ClangExpressionParser.cpp
index b2940de..22fae91 100644
--- a/lldb/source/Expression/ClangExpressionParser.cpp
+++ b/lldb/source/Expression/ClangExpressionParser.cpp
@@ -754,7 +754,7 @@
     
     ArchSpec arch(target->GetArchitecture());
     
-    Disassembler *disassembler = Disassembler::FindPlugin(arch, NULL);
+    lldb::DisassemblerSP disassembler = Disassembler::FindPlugin(arch, NULL);
     
     if (disassembler == NULL)
     {