================ @@ -836,36 +834,18 @@ Status PlatformDarwinKernel::GetSharedModuleKernel( module_sp.reset(new Module(kern_spec)); if (module_sp && module_sp->GetObjectFile() && module_sp->MatchesModuleSpec(kern_spec)) { - // module_sp is an actual kernel binary we want to add. - if (process) { - const bool notify = false; - process->GetTarget().GetImages().AppendIfNeeded(module_sp, notify); - error.Clear(); - return error; - } else { - error = ModuleList::GetSharedModule(kern_spec, module_sp, nullptr, - nullptr, nullptr); - if (module_sp && module_sp->GetObjectFile() && - module_sp->GetObjectFile()->GetType() != - ObjectFile::Type::eTypeCoreFile) { - return error; - } - module_sp.reset(); - } + if (did_create_ptr) + *did_create_ptr = true; + return {}; } } } // Give the generic methods, including possibly calling into DebugSymbols // framework on macOS systems, a chance. - error = PlatformDarwin::GetSharedModule(module_spec, process, module_sp, - module_search_paths_ptr, old_modules, - did_create_ptr); - if (error.Success() && module_sp.get()) { - return error; - } - - return error; + return PlatformDarwin::GetSharedModule(module_spec, process, module_sp, ---------------- hawkinsw wrote:
Of course! Now that I looked at the signature and saw that `module_sp` is passed by reference, we assume that it will go out of the caller's scope (or the caller's, caller's scope ...) at some point and the "leaked" instance of `Module` would be cleaned up then! Thank you for the explanation. It just seemed odd to have that contain a pointer at all at that point in the code because the point of calling `PlatformDarwin::GetSharedModule` is that a valid one was not found. I.e., if the condition on lines 805/806 was false, it seemed to me that "A Module that matches the ModuleSpec" was *not* actually found and so `module_sp` should have been reset before either falling out of the loop or going to the next iteration. Thank you again for the explanation! https://github.com/llvm/llvm-project/pull/78652 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits