[Lldb-commits] [lldb] [lldb] refactor Target::Install function (PR #108996)
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Thu Sep 19 06:27:05 PDT 2024
================
@@ -76,6 +76,79 @@
using namespace lldb;
using namespace lldb_private;
+namespace {
+
+struct ExecutableInstaller {
+
+ ExecutableInstaller(PlatformSP platform, ModuleSP module)
+ : m_platform{platform}, m_module{module},
+ m_local_file{m_module->GetFileSpec()},
+ m_remote_file{m_module->GetRemoteInstallFileSpec()} {}
+
+ void setRemoteFile() const { m_module->SetPlatformFileSpec(m_remote_file); }
+
+ PlatformSP m_platform;
+ ModuleSP m_module;
+ const FileSpec m_local_file;
+ const FileSpec m_remote_file;
+};
+
+struct MainExecutableInstaller {
+
+ MainExecutableInstaller(PlatformSP platform, TargetSP target, ModuleSP module,
+ ProcessLaunchInfo *launch_info)
+ : m_platform{platform}, m_module{module},
+ m_local_file{m_module->GetFileSpec()},
+ m_remote_file{
+ getRemoteFileSpec(m_platform, target, m_module, m_local_file)},
+ m_launch_info{launch_info} {}
+
+ void setRemoteFile() const {
+ m_module->SetPlatformFileSpec(m_remote_file);
+ m_launch_info->SetExecutableFile(m_remote_file,
+ false /*add_exe_file_as_first_arg*/);
+ m_platform->SetFilePermissions(m_remote_file, 0700 /*-rwx------*/);
+ }
+
+ PlatformSP m_platform;
+ ModuleSP m_module;
+ const FileSpec m_local_file;
+ const FileSpec m_remote_file;
+ ProcessLaunchInfo *m_launch_info;
----------------
DavidSpickett wrote:
Anything here that's not used outside the class should be private. I see local and remote file used not sure about the other ones.
https://github.com/llvm/llvm-project/pull/108996
More information about the lldb-commits
mailing list