]> granicus.if.org Git - clang/commitdiff
Use smallstring instead of new[]'ing a string. This simplifies
authorChris Lattner <sabre@nondot.org>
Wed, 19 Nov 2008 07:41:27 +0000 (07:41 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 19 Nov 2008 07:41:27 +0000 (07:41 +0000)
the code and speeds it up.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59604 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/ParseObjc.cpp

index f323d9fe234ced14e5c4ec7393f6b69298222d6d..9d4d6fb2481466b8d500fa8aa4861e20c6c56c48 100644 (file)
@@ -203,15 +203,11 @@ Parser::DeclTy *Parser::ParseObjCAtInterfaceDeclaration(
 /// has been capitalized.
 static IdentifierInfo *constructSetterName(IdentifierTable &Idents,
                                            const IdentifierInfo *Name) {
-  unsigned N = Name->getLength();
-  char *SelectorName = new char[3 + N];
-  memcpy(SelectorName, "set", 3);
-  memcpy(&SelectorName[3], Name->getName(), N);
+  llvm::SmallString<100> SelectorName;
+  SelectorName += "set";
+  SelectorName.append(Name->getName(), Name->getName()+Name->getLength());
   SelectorName[3] = toupper(SelectorName[3]);
-
-  IdentifierInfo *Setter = &Idents.get(SelectorName, &SelectorName[3 + N]);
-  delete[] SelectorName;
-  return Setter;
+  return &Idents.get(&SelectorName[0], &SelectorName[SelectorName.size()]);
 }
 
 ///   objc-interface-decl-list: