]> granicus.if.org Git - clang/commitdiff
Simplify SelectorTable::constructSetterName() usage...
authorSteve Naroff <snaroff@apple.com>
Tue, 10 Mar 2009 17:24:38 +0000 (17:24 +0000)
committerSteve Naroff <snaroff@apple.com>
Tue, 10 Mar 2009 17:24:38 +0000 (17:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66551 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/IdentifierTable.h
lib/Parse/ParseObjc.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaExprObjC.cpp

index df0200f1e70faad5aff756e945cc2b116bd9a338..70e1cbfdd37d36d77fb396e291307665275f4de3 100644 (file)
@@ -435,13 +435,16 @@ public:
   /// constructSetterName - Return the setter name for the given
   /// identifier, i.e. "set" + Name where the initial character of Name
   /// has been capitalized.
-  static IdentifierInfo *constructSetterName(IdentifierTable &Idents,
-                                             const IdentifierInfo *Name) {
+  static Selector constructSetterName(IdentifierTable &Idents,
+                                      SelectorTable &SelTable,
+                                      const IdentifierInfo *Name) {
     llvm::SmallString<100> SelectorName;
     SelectorName = "set";
     SelectorName.append(Name->getName(), Name->getName()+Name->getLength());
     SelectorName[3] = toupper(SelectorName[3]);
-    return &Idents.get(&SelectorName[0], &SelectorName[SelectorName.size()]);
+    IdentifierInfo *SetterName = 
+      &Idents.get(&SelectorName[0], &SelectorName[SelectorName.size()]);
+    return SelTable.getUnarySelector(SetterName);
   }
 
   // Emit - Emit a SelectorTable to bitcode.
index 8a3672d29ce559d94652f542bc954f16163e41b5..293fe257cc8bc4bdd8abd8c339828bc8eefb8018 100644 (file)
@@ -328,11 +328,12 @@ void Parser::ParseObjCInterfaceDeclList(DeclTy *interfaceDecl,
           PP.getSelectorTable().getNullarySelector(SelName);
         IdentifierInfo *SetterName = OCDS.getSetterName();
         if (!SetterName)
-          SetterName = 
-            SelectorTable::constructSetterName(PP.getIdentifierTable(),
-                                               FD.D.getIdentifier());
+          SetterName = FD.D.getIdentifier();
+          
         Selector SetterSel = 
-          PP.getSelectorTable().getUnarySelector(SetterName);
+            SelectorTable::constructSetterName(PP.getIdentifierTable(),
+                                               PP.getSelectorTable(),
+                                               SetterName);
         bool isOverridingProperty = false;
         DeclTy *Property = Actions.ActOnProperty(CurScope, AtLoc, FD, OCDS,
                                                  GetterSel, SetterSel,
index f37c0d5bad1921d93e0bdb52d9ceac0e81a5430f..df8afa450bbc786f39bc8721c6853f487a271a03 100644 (file)
@@ -1886,10 +1886,9 @@ Sema::ActOnMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc,
 
       // If we found a getter then this may be a valid dot-reference, we
       // will look for the matching setter, in case it is needed.
-      IdentifierInfo *SetterName = 
-        SelectorTable::constructSetterName(PP.getIdentifierTable(), &Member);
-        
-      Selector SetterSel = PP.getSelectorTable().getUnarySelector(SetterName);
+      Selector SetterSel = 
+        SelectorTable::constructSetterName(PP.getIdentifierTable(), 
+                                           PP.getSelectorTable(), &Member);
       ObjCMethodDecl *Setter = IFace->lookupInstanceMethod(SetterSel);
       if (!Setter) {
         // If this reference is in an @implementation, also check for 'private'
index 98fbd9633113e4ea09ef3a7231e2605521a2b46c..ce9fe8971932daff3dffc201efa74f7a67c6b87c 100644 (file)
@@ -298,10 +298,10 @@ Action::OwningExprResult Sema::ActOnClassPropertyRefExpr(
   }
   
   // Look for the matching setter, in case it is needed.
-  IdentifierInfo *SetterName = 
-    SelectorTable::constructSetterName(PP.getIdentifierTable(), &propertyName);
+  Selector SetterSel = 
+    SelectorTable::constructSetterName(PP.getIdentifierTable(), 
+                                       PP.getSelectorTable(), &propertyName);
     
-  Selector SetterSel = PP.getSelectorTable().getUnarySelector(SetterName);
   ObjCMethodDecl *Setter = IFace->lookupClassMethod(SetterSel);
   if (!Setter) {
     // If this reference is in an @implementation, also check for 'private'