[llvm] r248372 - [dsymutil] Plug a memory leak.

Adrian Prantl via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 23 08:19:43 PDT 2015


Thanks! This should be fine. This was a leftover from the last refactoring. Originally all compileunits where kept alive in an array of unique_ptrs, to search for external type definitions. Since we are using the type uniquing now that’s no longer necessary and I removed the array but forgot to fix the ownership of the newly created unit.

-- adrian

> On Sep 23, 2015, at 8:10 AM, Frédéric Riss <friss at apple.com> wrote:
> 
> Thanks Ben!
> 
> Adrian, can you double check that the allocated unit doesn’t need to survive after we clone its DIEs. I don’t think so, but you know that part better than me.
> 
> Fred
> 
>> On Sep 23, 2015, at 3:38 AM, Benjamin Kramer via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>> 
>> Author: d0k
>> Date: Wed Sep 23 05:38:59 2015
>> New Revision: 248372
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=248372&view=rev
>> Log:
>> [dsymutil] Plug a memory leak.
>> 
>> Modified:
>>   llvm/trunk/tools/dsymutil/DwarfLinker.cpp
>> 
>> Modified: llvm/trunk/tools/dsymutil/DwarfLinker.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/DwarfLinker.cpp?rev=248372&r1=248371&r2=248372&view=diff
>> ==============================================================================
>> --- llvm/trunk/tools/dsymutil/DwarfLinker.cpp (original)
>> +++ llvm/trunk/tools/dsymutil/DwarfLinker.cpp Wed Sep 23 05:38:59 2015
>> @@ -3157,7 +3157,7 @@ void DwarfLinker::loadClangModule(String
>>  // FIXME: At this point dsymutil should verify the DW_AT_gnu_dwo_id
>>  // against the module hash of the clang module.
>> 
>> -  CompileUnit *Unit = nullptr;
>> +  std::unique_ptr<CompileUnit> Unit;
>> 
>>  // Setup access to the debug info.
>>  DWARFContextInMemory DwarfContext(*ErrOrObj);
>> @@ -3172,7 +3172,7 @@ void DwarfLinker::loadClangModule(String
>>               << " 1 compile unit.\n";
>>        exitDsymutil(1);
>>      }
>> -      Unit = new CompileUnit(*CU, UnitID++, !Options.NoODR);
>> +      Unit = llvm::make_unique<CompileUnit>(*CU, UnitID++, !Options.NoODR);
>>      Unit->setHasInterestingContent();
>>      gatherDIEParents(CUDie, 0, *Unit, &ODRContexts.getRoot(), StringPool,
>>                       ODRContexts);
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> 



More information about the llvm-commits mailing list