]> granicus.if.org Git - clang/commitdiff
Minor refactoring of my last patch
authorFariborz Jahanian <fjahanian@apple.com>
Mon, 7 Jan 2013 21:31:08 +0000 (21:31 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Mon, 7 Jan 2013 21:31:08 +0000 (21:31 +0000)
related to // rdar://12958878

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

lib/AST/DeclObjC.cpp

index 62b4f5ea82c7ccf0fc49fba8c563679466e3495c..32503ad7857836018fe891e4b08e51cf18fc66b9 100644 (file)
@@ -1352,20 +1352,19 @@ void ObjCProtocolDecl::startDefinition() {
 }
 
 void ObjCProtocolDecl::collectPropertiesToImplement(PropertyMap &PM) const {
-  const ObjCProtocolDecl *PDecl = this;
-  if (!isThisDeclarationADefinition() && getDefinition())
-    PDecl = getDefinition();
-
-  for (ObjCProtocolDecl::prop_iterator P = PDecl->prop_begin(),
-       E = PDecl->prop_end(); P != E; ++P) {
-    ObjCPropertyDecl *Prop = *P;
-    // Insert into PM if not there already.
-    PM.insert(std::make_pair(Prop->getIdentifier(), Prop));
+  
+  if (const ObjCProtocolDecl *PDecl = getDefinition()) {
+    for (ObjCProtocolDecl::prop_iterator P = PDecl->prop_begin(),
+         E = PDecl->prop_end(); P != E; ++P) {
+      ObjCPropertyDecl *Prop = *P;
+      // Insert into PM if not there already.
+      PM.insert(std::make_pair(Prop->getIdentifier(), Prop));
+    }
+    // Scan through protocol's protocols.
+    for (ObjCProtocolDecl::protocol_iterator PI = PDecl->protocol_begin(),
+         E = PDecl->protocol_end(); PI != E; ++PI)
+      (*PI)->collectPropertiesToImplement(PM);
   }
-  // Scan through protocol's protocols.
-  for (ObjCProtocolDecl::protocol_iterator PI = PDecl->protocol_begin(),
-      E = PDecl->protocol_end(); PI != E; ++PI)
-    (*PI)->collectPropertiesToImplement(PM);
 }