[lldb] Move ArchitectureCreateInstance into ldb-private-interfaces
authorJonas Devlieghere <jonas@devlieghere.com>
Wed, 19 Feb 2020 04:16:59 +0000 (20:16 -0800)
committerJonas Devlieghere <jonas@devlieghere.com>
Wed, 19 Feb 2020 04:19:54 +0000 (20:19 -0800)
There's no reason this should be the only one living in the
PluginManager itself.

lldb/include/lldb/Core/PluginManager.h
lldb/include/lldb/lldb-forward.h
lldb/include/lldb/lldb-private-interfaces.h
lldb/source/Core/PluginManager.cpp

index 90db9ce..4cae597 100644 (file)
@@ -62,9 +62,6 @@ public:
   static ABICreateInstance GetABICreateCallbackAtIndex(uint32_t idx);
 
   // Architecture
-  using ArchitectureCreateInstance =
-      std::unique_ptr<Architecture> (*)(const ArchSpec &);
-
   static void RegisterPlugin(ConstString name, llvm::StringRef description,
                              ArchitectureCreateInstance create_callback);
 
index d1d02e5..97fb20b 100644 (file)
@@ -20,6 +20,7 @@ class ABI;
 class Address;
 class AddressRange;
 class AddressResolver;
+class Architecture;
 class ArchSpec;
 class ArmUnwindInfo;
 class Args;
index 5c351fa..1568e7a 100644 (file)
 
 #include "lldb/lldb-enumerations.h"
 #include "lldb/lldb-forward.h"
-#include "lldb/lldb-types.h"
-
 #include "lldb/lldb-private-enumerations.h"
-
+#include "lldb/lldb-types.h"
+#include <memory>
 #include <set>
 
 namespace lldb_private {
-typedef lldb::ABISP (*ABICreateInstance)(lldb::ProcessSP process_sp, const ArchSpec &arch);
+typedef lldb::ABISP (*ABICreateInstance)(lldb::ProcessSP process_sp,
+                                         const ArchSpec &arch);
+typedef std::unique_ptr<Architecture> (*ArchitectureCreateInstance)(
+    const ArchSpec &arch);
 typedef Disassembler *(*DisassemblerCreateInstance)(const ArchSpec &arch,
                                                     const char *flavor);
 typedef DynamicLoader *(*DynamicLoaderCreateInstance)(Process *process,
index e23afec..136b1fc 100644 (file)
@@ -270,8 +270,7 @@ ABICreateInstance PluginManager::GetABICreateCallbackAtIndex(uint32_t idx) {
 
 #pragma mark Architecture
 
-typedef PluginInstance<PluginManager::ArchitectureCreateInstance>
-    ArchitectureInstance;
+typedef PluginInstance<ArchitectureCreateInstance> ArchitectureInstance;
 typedef std::vector<ArchitectureInstance> ArchitectureInstances;
 
 static std::mutex &GetArchitectureMutex() {