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!

llvm-svn: 206139
This commit is contained in:
Saleem Abdulrasool
2014-04-13 22:54:11 +00:00
parent 2c08051cc5
commit 63a0dd6540

View File

@@ -695,14 +695,10 @@ static void PrintCOFFSymbolTable(const COFFObjectFile *coff) {
, 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;