================
@@ -299,6 +301,35 @@ SBPlatform::SBPlatform(const char *platform_name) {
m_opaque_sp = Platform::Create(platform_name);
}
+SBPlatform::SBPlatform(const char *platform_name, const SBDebugger &debugger,
+ const char *script_name, const SBStructuredData &dict)
+ : SBPlatform(platform_name) {
+ LLDB_INSTRUMENT_VA(this, platform_name, debugger, script_name, dict);
+
+ if (!m_opaque_sp)
+ return;
+
+ if (!script_name || !dict.IsValid() || !dict.m_impl_up)
----------------
bulbazord wrote:
Problem: Exiting here with a valid `m_opaque_sp` means that the created
`SBPlatform` will look valid, but it won't be the one you expect to get back. I
would suggest creating a separate constructor that does not call another
constructor (in case the base constructor succeeds) OR creating a static
constructor method. That goes for every early return.
nit: Checking `!dict.m_impl_up` is going to be redundant right? We should
always have an existing unique_ptr there.
https://github.com/llvm/llvm-project/pull/99814
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits