Reverted back to revision 1.11. The previous fix doesn't really fix
[oota-llvm.git] / lib / Bytecode / Archive / ArchiveReader.cpp
index 1baaff289e3ca609d9b1e84a5099ac0296133efb..b147cb3344e04270a395690f0d6736bf79785db3 100644 (file)
@@ -122,17 +122,8 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
       while (endp[-1] == ' ')
         --endp;
     }
-
-    //
-    // We now have the beginning and the end of the object name.
-    // Convert this into a dynamically allocated std::string to pass
-    // to the routines that create the Module object.  We do this
-    // (I think) because the created Module object will outlive this function,
-    // but statically declared std::string's won't.
-    //
     std::string MemberName (startp, endp);
-    std::string * FullMemberName;
-    FullMemberName = new std::string (ArchiveName + "(" + MemberName + ")");
+    std::string FullMemberName = ArchiveName + "(" + MemberName + ")";
 
     switch (getObjectType(Hdr, MemberData, MemberSize)) {
     case SVR4LongFilename:
@@ -142,7 +133,7 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
       break;
     case UserObject: {
       Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
-                                      *(FullMemberName), ErrorStr);
+                                      FullMemberName, ErrorStr);
       if (!M) return true;
       Objects.push_back(M);
       break;
@@ -153,7 +144,7 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
       break;
     default:
       std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
-                << *(FullMemberName) << "\n";
+                << FullMemberName << "\n";
       break;   // Just ignore unknown files.
     }