diff options
| author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2021-09-03 17:35:02 +0000 |
|---|---|---|
| committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2021-09-03 19:37:25 +0200 |
| commit | 3925204c1f5880f491e08d8481e88342bbeb7bc4 (patch) | |
| tree | b60a7d478c4d9c0ef14cc96682f24ef3fa6b8f20 /lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp | |
| parent | b9e57e030560fef9ddc51caca8bacfefccdf8a62 (diff) | |
[lldb/Plugins] Introduce Scripted Interface Factory
This patch splits the previous `ScriptedProcessPythonInterface` into
multiple specific classes:
1. The `ScriptedInterface` abstract class that carries the interface
instance object and its virtual pure abstract creation method.
2. The `ScriptedPythonInterface` that holds a generic `Dispatch` method that
can be used by various interfaces to call python methods and also keeps a
reference to the Python Script Interpreter instance.
3. The `ScriptedProcessInterface` that describes the base Scripted
Process model with all the methods used in the underlying script.
All these components are used to refactor the `ScriptedProcessPythonInterface`
class, making it more modular.
This patch is also a requirement for the upcoming work on `ScriptedThread`.
Differential Revision: https://reviews.llvm.org/D107521
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Diffstat (limited to 'lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp')
| -rw-r--r-- | lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp index 09e9375b6f66..93b8d5f457a4 100644 --- a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp +++ b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp @@ -109,8 +109,10 @@ ScriptedProcess::ScriptedProcess( return; } - StructuredData::ObjectSP object_sp = GetInterface().CreatePluginObject( - m_scripted_process_info.GetClassName().c_str(), target_sp, + ExecutionContext exe_ctx(target_sp, /*get_process=*/false); + + StructuredData::GenericSP object_sp = GetInterface().CreatePluginObject( + m_scripted_process_info.GetClassName().c_str(), exe_ctx, m_scripted_process_info.GetDictionarySP()); if (!object_sp || !object_sp->IsValid()) { |
