[lldb] Make Process and subclass constructors protected

Make constructors of the Process and its subclasses class protected,
to prevent accidentally constructing Process on stack when it could be
afterwards accessed via a shared_ptr (since it uses
std::enable_shared_from_this<>).

The only place where a stack allocation was used were unittests,
and fixing them via declaring an explicit public constructor
in the respective mock classes is trivial.

Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.llvm.org/D131275
This commit is contained in:
Michał Górny
2022-08-05 19:39:42 +02:00
parent e640250454
commit 9b031d5e3a
11 changed files with 35 additions and 31 deletions

View File

@@ -62,8 +62,8 @@ lldb::ProcessSP ScriptedProcess::CreateInstance(lldb::TargetSP target_sp,
ScriptedProcess::ScriptedProcessInfo scripted_process_info(
target_sp->GetProcessLaunchInfo());
auto process_sp = std::make_shared<ScriptedProcess>(
target_sp, listener_sp, scripted_process_info, error);
auto process_sp = std::shared_ptr<ScriptedProcess>(new ScriptedProcess(
target_sp, listener_sp, scripted_process_info, error));
if (error.Fail() || !process_sp || !process_sp->m_script_object_sp ||
!process_sp->m_script_object_sp->IsValid()) {