[Lldb-commits] [PATCH] D42347: Fix memory leaks in	MinidumpParserTest
    Raphael Isemann via Phabricator via lldb-commits 
    lldb-commits at lists.llvm.org
       
    Sat Jan 20 23:39:53 PST 2018
    
    
  
teemperor created this revision.
teemperor added a reviewer: dvlahovski.
We never delete the allocated RegisterContext objects, causing those tests to fail with enabled memory sanitizer.
https://reviews.llvm.org/D42347
Files:
  unittests/Process/minidump/MinidumpParserTest.cpp
Index: unittests/Process/minidump/MinidumpParserTest.cpp
===================================================================
--- unittests/Process/minidump/MinidumpParserTest.cpp
+++ unittests/Process/minidump/MinidumpParserTest.cpp
@@ -315,9 +315,10 @@
   llvm::ArrayRef<uint8_t> registers(parser->GetThreadContext(thread));
 
   ArchSpec arch = parser->GetArchitecture();
-  RegisterInfoInterface *reg_interface = new RegisterContextLinux_i386(arch);
+  std::unique_ptr<RegisterInfoInterface> reg_interface(
+      new RegisterContextLinux_i386(arch));
   lldb::DataBufferSP buf =
-      ConvertMinidumpContext_x86_32(registers, reg_interface);
+      ConvertMinidumpContext_x86_32(registers, reg_interface.get());
   ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize());
 
   const RegisterInfo *reg_info = reg_interface->GetRegisterInfo();
@@ -357,9 +358,10 @@
   llvm::ArrayRef<uint8_t> registers(parser->GetThreadContext(thread));
 
   ArchSpec arch = parser->GetArchitecture();
-  RegisterInfoInterface *reg_interface = new RegisterContextLinux_x86_64(arch);
+  std::unique_ptr<RegisterInfoInterface> reg_interface(
+      new RegisterContextLinux_x86_64(arch));
   lldb::DataBufferSP buf =
-      ConvertMinidumpContext_x86_64(registers, reg_interface);
+      ConvertMinidumpContext_x86_64(registers, reg_interface.get());
   ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize());
 
   const RegisterInfo *reg_info = reg_interface->GetRegisterInfo();
@@ -407,9 +409,10 @@
   llvm::ArrayRef<uint8_t> registers(parser->GetThreadContextWow64(thread));
 
   ArchSpec arch = parser->GetArchitecture();
-  RegisterInfoInterface *reg_interface = new RegisterContextLinux_i386(arch);
+  std::unique_ptr<RegisterInfoInterface> reg_interface(
+      new RegisterContextLinux_i386(arch));
   lldb::DataBufferSP buf =
-      ConvertMinidumpContext_x86_32(registers, reg_interface);
+      ConvertMinidumpContext_x86_32(registers, reg_interface.get());
   ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize());
 
   const RegisterInfo *reg_info = reg_interface->GetRegisterInfo();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42347.130797.patch
Type: text/x-patch
Size: 2093 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180121/cb419944/attachment-0001.bin>
    
    
More information about the lldb-commits
mailing list