[lld] r221180 - Fix leak found by asan.

Rafael Espindola rafael.espindola at gmail.com
Mon Nov 3 12:55:23 PST 2014


Author: rafael
Date: Mon Nov  3 14:55:23 2014
New Revision: 221180

URL: http://llvm.org/viewvc/llvm-project?rev=221180&view=rev
Log:
Fix leak found by asan.

Modified:
    lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp

Modified: lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp?rev=221180&r1=221179&r2=221180&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp (original)
+++ lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp Mon Nov  3 14:55:23 2014
@@ -682,7 +682,7 @@ template <> struct MappingTraits<const l
     }
 
     IO                                  &_io;
-    RefNameBuilder                      *_rnb;
+    std::unique_ptr<RefNameBuilder> _rnb;
     StringRef                            _path;
     AtomList<lld::DefinedAtom>           _definedAtoms;
     AtomList<lld::UndefinedAtom>         _undefinedAtoms;
@@ -1231,9 +1231,9 @@ MappingTraits<const lld::Reference *>::N
   assert(info != nullptr);
   typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
   NormalizedFile *f = reinterpret_cast<NormalizedFile *>(info->_file);
-  RefNameBuilder *rnb = f->_rnb;
-  if (rnb->hasRefName(ref->target()))
-    return rnb->refName(ref->target());
+  RefNameBuilder &rnb = *f->_rnb;
+  if (rnb.hasRefName(ref->target()))
+    return rnb.refName(ref->target());
   return ref->target()->name();
 }
 





More information about the llvm-commits mailing list