[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:
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user