diff options
author | Chris Lattner <sabre@nondot.org> | 2008-11-19 07:41:27 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-11-19 07:41:27 +0000 |
commit | 66e3877b42fea73fde704c45ad340b13516b7e84 (patch) | |
tree | 1f1db823ca0d7334dbc8043f33274fd045d4697a /clang/lib | |
parent | ebad6a220f5de7ca1b8270327c08c82942243046 (diff) | |
download | bcm5719-llvm-66e3877b42fea73fde704c45ad340b13516b7e84.tar.gz bcm5719-llvm-66e3877b42fea73fde704c45ad340b13516b7e84.zip |
Use smallstring instead of new[]'ing a string. This simplifies
the code and speeds it up.
llvm-svn: 59604
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Parse/ParseObjc.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp index f323d9fe234..9d4d6fb2481 100644 --- a/clang/lib/Parse/ParseObjc.cpp +++ b/clang/lib/Parse/ParseObjc.cpp @@ -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: |