[llvm] r203833 - MCDwarf: Oh, and move the directory string over to std::string as well

David Blaikie dblaikie at gmail.com
Thu Mar 13 12:05:34 PDT 2014


Author: dblaikie
Date: Thu Mar 13 14:05:33 2014
New Revision: 203833

URL: http://llvm.org/viewvc/llvm-project?rev=203833&view=rev
Log:
MCDwarf: Oh, and move the directory string over to std::string as well

(see r203831 for similar stuff)

Modified:
    llvm/trunk/include/llvm/MC/MCContext.h
    llvm/trunk/include/llvm/MC/MCDwarf.h
    llvm/trunk/lib/MC/MCContext.cpp
    llvm/trunk/lib/MC/MCDwarf.cpp

Modified: llvm/trunk/include/llvm/MC/MCContext.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCContext.h?rev=203833&r1=203832&r2=203833&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCContext.h (original)
+++ llvm/trunk/include/llvm/MC/MCContext.h Thu Mar 13 14:05:33 2014
@@ -325,7 +325,7 @@ namespace llvm {
     const SmallVectorImpl<MCDwarfFile> &getMCDwarfFiles(unsigned CUID = 0) {
       return getMCDwarfFileTable(CUID).getMCDwarfFiles();
     }
-    const SmallVectorImpl<StringRef> &getMCDwarfDirs(unsigned CUID = 0) {
+    const SmallVectorImpl<std::string> &getMCDwarfDirs(unsigned CUID = 0) {
       return getMCDwarfFileTable(CUID).getMCDwarfDirs();
     }
 

Modified: llvm/trunk/include/llvm/MC/MCDwarf.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCDwarf.h?rev=203833&r1=203832&r2=203833&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCDwarf.h (original)
+++ llvm/trunk/include/llvm/MC/MCDwarf.h Thu Mar 13 14:05:33 2014
@@ -22,6 +22,7 @@
 #include "llvm/Support/raw_ostream.h"
 #include <map>
 #include <vector>
+#include <string>
 
 namespace llvm {
 class MCAsmBackend;
@@ -175,7 +176,7 @@ public:
 
 class MCDwarfFileTable {
   MCSymbol *Label;
-  SmallVector<StringRef, 3> MCDwarfDirs;
+  SmallVector<std::string, 3> MCDwarfDirs;
   SmallVector<MCDwarfFile, 3> MCDwarfFiles;
   MCLineSection MCLineSections;
 
@@ -189,11 +190,11 @@ public:
   //
   const MCSymbol *EmitCU(MCStreamer *MCOS) const;
 
-  const SmallVectorImpl<StringRef> &getMCDwarfDirs() const {
+  const SmallVectorImpl<std::string> &getMCDwarfDirs() const {
     return MCDwarfDirs;
   }
 
-  SmallVectorImpl<StringRef> &getMCDwarfDirs() {
+  SmallVectorImpl<std::string> &getMCDwarfDirs() {
     return MCDwarfDirs;
   }
 

Modified: llvm/trunk/lib/MC/MCContext.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCContext.cpp?rev=203833&r1=203832&r2=203833&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCContext.cpp (original)
+++ llvm/trunk/lib/MC/MCContext.cpp Thu Mar 13 14:05:33 2014
@@ -339,7 +339,7 @@ unsigned MCContext::GetDwarfFile(StringR
                                  unsigned FileNumber, unsigned CUID) {
   MCDwarfFileTable &Table = MCDwarfFileTablesCUMap[CUID];
   SmallVectorImpl<MCDwarfFile>& MCDwarfFiles = Table.getMCDwarfFiles();
-  SmallVectorImpl<StringRef>& MCDwarfDirs = Table.getMCDwarfDirs();
+  SmallVectorImpl<std::string>& MCDwarfDirs = Table.getMCDwarfDirs();
   // Make space for this FileNumber in the MCDwarfFiles vector if needed.
   if (FileNumber >= MCDwarfFiles.size()) {
     MCDwarfFiles.resize(FileNumber + 1);
@@ -374,11 +374,8 @@ unsigned MCContext::GetDwarfFile(StringR
       if (Directory == MCDwarfDirs[DirIndex])
         break;
     }
-    if (DirIndex >= MCDwarfDirs.size()) {
-      char *Buf = static_cast<char *>(Allocate(Directory.size()));
-      memcpy(Buf, Directory.data(), Directory.size());
-      MCDwarfDirs.push_back(StringRef(Buf, Directory.size()));
-    }
+    if (DirIndex >= MCDwarfDirs.size())
+      MCDwarfDirs.push_back(Directory);
     // The DirIndex is one based, as DirIndex of 0 is used for FileNames with
     // no directories.  MCDwarfDirs[] is unlike MCDwarfFiles[] in that the
     // directory names are stored at MCDwarfDirs[DirIndex-1] where FileNames

Modified: llvm/trunk/lib/MC/MCDwarf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=203833&r1=203832&r2=203833&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCDwarf.cpp (original)
+++ llvm/trunk/lib/MC/MCDwarf.cpp Thu Mar 13 14:05:33 2014
@@ -596,8 +596,7 @@ static void EmitGenDwarfInfo(MCStreamer
 
   // AT_name, the name of the source file.  Reconstruct from the first directory
   // and file table entries.
-  const SmallVectorImpl<StringRef> &MCDwarfDirs =
-    context.getMCDwarfDirs();
+  const SmallVectorImpl<std::string> &MCDwarfDirs = context.getMCDwarfDirs();
   if (MCDwarfDirs.size() > 0) {
     MCOS->EmitBytes(MCDwarfDirs[0]);
     MCOS->EmitBytes("/");





More information about the llvm-commits mailing list