llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Med Ismail Bennani (medismailben) <details> <summary>Changes</summary> This patch makes the various Scripted Interface base class abstract by making the `CreatePluginObject` method pure virtual. This means that we cannot construct a Scripted Interface base class instance, so this patch also updates the various `ScriptedInterpreter::CreateScripted*Interface` methods to return a `nullptr` instead.` --- Full diff: https://github.com/llvm/llvm-project/pull/71465.diff 6 Files Affected: - (modified) lldb/include/lldb/Interpreter/Interfaces/ScriptedPlatformInterface.h (+1-3) - (modified) lldb/include/lldb/Interpreter/Interfaces/ScriptedProcessInterface.h (+1-3) - (modified) lldb/include/lldb/Interpreter/Interfaces/ScriptedThreadInterface.h (+1-3) - (modified) lldb/include/lldb/Interpreter/ScriptInterpreter.h (+6-10) - (modified) lldb/source/Interpreter/ScriptInterpreter.cpp (+3-6) - (modified) lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp (-2) ``````````diff diff --git a/lldb/include/lldb/Interpreter/Interfaces/ScriptedPlatformInterface.h b/lldb/include/lldb/Interpreter/Interfaces/ScriptedPlatformInterface.h index 2dcbb47ffa6de85..7feaa01fe89b860 100644 --- a/lldb/include/lldb/Interpreter/Interfaces/ScriptedPlatformInterface.h +++ b/lldb/include/lldb/Interpreter/Interfaces/ScriptedPlatformInterface.h @@ -22,9 +22,7 @@ class ScriptedPlatformInterface : virtual public ScriptedInterface { virtual llvm::Expected<StructuredData::GenericSP> CreatePluginObject(llvm::StringRef class_name, ExecutionContext &exe_ctx, StructuredData::DictionarySP args_sp, - StructuredData::Generic *script_obj = nullptr) { - return {llvm::make_error<UnimplementedError>()}; - } + StructuredData::Generic *script_obj = nullptr) = 0; virtual StructuredData::DictionarySP ListProcesses() { return {}; } diff --git a/lldb/include/lldb/Interpreter/Interfaces/ScriptedProcessInterface.h b/lldb/include/lldb/Interpreter/Interfaces/ScriptedProcessInterface.h index a429cacd862f121..10203b1f8baa7aa 100644 --- a/lldb/include/lldb/Interpreter/Interfaces/ScriptedProcessInterface.h +++ b/lldb/include/lldb/Interpreter/Interfaces/ScriptedProcessInterface.h @@ -24,9 +24,7 @@ class ScriptedProcessInterface : virtual public ScriptedInterface { virtual llvm::Expected<StructuredData::GenericSP> CreatePluginObject(llvm::StringRef class_name, ExecutionContext &exe_ctx, StructuredData::DictionarySP args_sp, - StructuredData::Generic *script_obj = nullptr) { - return {llvm::make_error<UnimplementedError>()}; - } + StructuredData::Generic *script_obj = nullptr) = 0; virtual StructuredData::DictionarySP GetCapabilities() { return {}; } diff --git a/lldb/include/lldb/Interpreter/Interfaces/ScriptedThreadInterface.h b/lldb/include/lldb/Interpreter/Interfaces/ScriptedThreadInterface.h index 107e593b5561ef7..a7cfc690b67dc74 100644 --- a/lldb/include/lldb/Interpreter/Interfaces/ScriptedThreadInterface.h +++ b/lldb/include/lldb/Interpreter/Interfaces/ScriptedThreadInterface.h @@ -23,9 +23,7 @@ class ScriptedThreadInterface : virtual public ScriptedInterface { virtual llvm::Expected<StructuredData::GenericSP> CreatePluginObject(llvm::StringRef class_name, ExecutionContext &exe_ctx, StructuredData::DictionarySP args_sp, - StructuredData::Generic *script_obj = nullptr) { - return {llvm::make_error<UnimplementedError>()}; - } + StructuredData::Generic *script_obj = nullptr) = 0; virtual lldb::tid_t GetThreadID() { return LLDB_INVALID_THREAD_ID; } diff --git a/lldb/include/lldb/Interpreter/ScriptInterpreter.h b/lldb/include/lldb/Interpreter/ScriptInterpreter.h index 0146eeb86262003..b941f6012a117b6 100644 --- a/lldb/include/lldb/Interpreter/ScriptInterpreter.h +++ b/lldb/include/lldb/Interpreter/ScriptInterpreter.h @@ -151,10 +151,7 @@ class ScriptInterpreter : public PluginInterface { eScriptReturnTypeOpaqueObject }; - ScriptInterpreter( - Debugger &debugger, lldb::ScriptLanguage script_lang, - lldb::ScriptedPlatformInterfaceUP scripted_platform_interface_up = - std::make_unique<ScriptedPlatformInterface>()); + ScriptInterpreter(Debugger &debugger, lldb::ScriptLanguage script_lang); virtual StructuredData::DictionarySP GetInterpreterInfo(); @@ -559,19 +556,19 @@ class ScriptInterpreter : public PluginInterface { lldb::ScriptLanguage GetLanguage() { return m_script_lang; } virtual lldb::ScriptedProcessInterfaceUP CreateScriptedProcessInterface() { - return std::make_unique<ScriptedProcessInterface>(); + return {}; } virtual lldb::ScriptedThreadInterfaceSP CreateScriptedThreadInterface() { - return std::make_shared<ScriptedThreadInterface>(); + return {}; } virtual lldb::OperatingSystemInterfaceSP CreateOperatingSystemInterface() { - return std::make_shared<OperatingSystemInterface>(); + return {}; } - ScriptedPlatformInterface &GetScriptedPlatformInterface() { - return *m_scripted_platform_interface_up; + virtual lldb::ScriptedPlatformInterfaceUP GetScriptedPlatformInterface() { + return {}; } virtual StructuredData::ObjectSP @@ -599,7 +596,6 @@ class ScriptInterpreter : public PluginInterface { protected: Debugger &m_debugger; lldb::ScriptLanguage m_script_lang; - lldb::ScriptedPlatformInterfaceUP m_scripted_platform_interface_up; }; } // namespace lldb_private diff --git a/lldb/source/Interpreter/ScriptInterpreter.cpp b/lldb/source/Interpreter/ScriptInterpreter.cpp index fb3fa74d0b97804..8dd499ce819a789 100644 --- a/lldb/source/Interpreter/ScriptInterpreter.cpp +++ b/lldb/source/Interpreter/ScriptInterpreter.cpp @@ -27,12 +27,9 @@ using namespace lldb; using namespace lldb_private; -ScriptInterpreter::ScriptInterpreter( - Debugger &debugger, lldb::ScriptLanguage script_lang, - lldb::ScriptedPlatformInterfaceUP scripted_platform_interface_up) - : m_debugger(debugger), m_script_lang(script_lang), - m_scripted_platform_interface_up( - std::move(scripted_platform_interface_up)) {} +ScriptInterpreter::ScriptInterpreter(Debugger &debugger, + lldb::ScriptLanguage script_lang) + : m_debugger(debugger), m_script_lang(script_lang) {} void ScriptInterpreter::CollectDataForBreakpointCommandCallback( std::vector<std::reference_wrapper<BreakpointOptions>> &bp_options_vec, diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index 953f8b3aba18f79..ef7a2c128a22074 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -427,8 +427,6 @@ ScriptInterpreterPythonImpl::ScriptInterpreterPythonImpl(Debugger &debugger) m_active_io_handler(eIOHandlerNone), m_session_is_active(false), m_pty_secondary_is_open(false), m_valid_session(true), m_lock_count(0), m_command_thread_state(nullptr) { - m_scripted_platform_interface_up = - std::make_unique<ScriptedPlatformPythonInterface>(*this); m_dictionary_name.append("_dict"); StreamString run_string; `````````` </details> https://github.com/llvm/llvm-project/pull/71465 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits