]> granicus.if.org Git - clang/commitdiff
Simplify code to avoid a useless string copy.
authorBenjamin Kramer <benny.kra@googlemail.com>
Fri, 14 Oct 2011 18:45:16 +0000 (18:45 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Fri, 14 Oct 2011 18:45:16 +0000 (18:45 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141970 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDebugInfo.cpp

index 5ae4dfe83c86f902b610490ecb8760e5179940d2..39a9ef788f9531b28ec1e8346ca4a511e9a2d371 100644 (file)
@@ -156,12 +156,10 @@ StringRef CGDebugInfo::getObjCMethodName(const ObjCMethodDecl *OMD) {
 /// getSelectorName - Return selector name. This is used for debugging
 /// info.
 StringRef CGDebugInfo::getSelectorName(Selector S) {
-  llvm::SmallString<256> SName;
-  llvm::raw_svector_ostream OS(SName);
-  OS << S.getAsString();
-  char *StrPtr = DebugInfoNames.Allocate<char>(OS.tell());
-  memcpy(StrPtr, SName.begin(), OS.tell());
-  return StringRef(StrPtr, OS.tell());
+  const std::string &SName = S.getAsString();
+  char *StrPtr = DebugInfoNames.Allocate<char>(SName.size());
+  memcpy(StrPtr, SName.data(), SName.size());
+  return StringRef(StrPtr, SName.size());
 }
 
 /// getClassName - Get class name including template argument list.