diff options
Diffstat (limited to 'lldb/source/Target/Process.cpp')
| -rw-r--r-- | lldb/source/Target/Process.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index f957645e078..996782b5378 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -6164,14 +6164,12 @@ Status Process::UpdateAutomaticSignalFiltering() { return Status(); } -UtilityFunction *Process::GetLoadImageUtilityFunction(Platform *platform) { +UtilityFunction *Process::GetLoadImageUtilityFunction( + Platform *platform, + llvm::function_ref<std::unique_ptr<UtilityFunction>()> factory) { if (platform != GetTarget().GetPlatform().get()) return nullptr; + std::call_once(m_dlopen_utility_func_flag_once, + [&] { m_dlopen_utility_func_up = factory(); }); return m_dlopen_utility_func_up.get(); } - -void Process::SetLoadImageUtilityFunction(std::unique_ptr<UtilityFunction> - utility_func_up) { - m_dlopen_utility_func_up.swap(utility_func_up); -} - |

