[llvm] r206139 - tools: avoid a string duplication

Saleem Abdulrasool compnerd at compnerd.org
Sun Apr 13 15:54:11 PDT 2014


Author: compnerd
Date: Sun Apr 13 17:54:11 2014
New Revision: 206139

URL: http://llvm.org/viewvc/llvm-project?rev=206139&view=rev
Log:
tools: avoid a string duplication

The auxiliary file records are contiguous and only contain the filename.
Construct a StringRef directly rather than copying to a temporary buffer.

Suggested by majnemer on IRC!

Modified:
    llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp

Modified: llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp?rev=206139&r1=206138&r2=206139&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (original)
+++ llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp Sun Apr 13 17:54:11 2014
@@ -695,14 +695,10 @@ static void PrintCOFFSymbolTable(const C
                          , unsigned(asd->Selection));
         break;
       case COFF::IMAGE_SYM_CLASS_FILE:
-        SmallString<261> FileName;
-        for (unsigned AI = i, AE = i + aux_count + 1; AI < AE; ++AI) {
-          const coff_aux_file *AF;
-          if (error(coff->getAuxSymbol<coff_aux_file>(AI, AF)))
-            return;
-          FileName.append(&AF->FileName[0], &AF->FileName[18]);
-        }
-        outs() << "AUX " << FileName << '\n';
+        const coff_aux_file *AF;
+        if (error(coff->getAuxSymbol<coff_aux_file>(i, AF)))
+          return;
+        outs() << "AUX " << StringRef(AF->FileName) << '\n';
         i = i + aux_count;
         aux_count = 0;
         break;





More information about the llvm-commits mailing list