Change ObjCForwardProtocolDecl to use an ObjCList.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65131 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclObjC.cpp b/lib/AST/DeclObjC.cpp
index b0d36db..2ae7ccc 100644
--- a/lib/AST/DeclObjC.cpp
+++ b/lib/AST/DeclObjC.cpp
@@ -137,26 +137,21 @@
 ObjCForwardProtocolDecl *
 ObjCForwardProtocolDecl::Create(ASTContext &C, DeclContext *DC,
                                 SourceLocation L, 
-                                ObjCProtocolDecl **Elts, unsigned NumElts) {
+                                ObjCProtocolDecl *const *Elts,
+                                unsigned NumElts) {
   return new (C) ObjCForwardProtocolDecl(DC, L, Elts, NumElts);
 }
 
 ObjCForwardProtocolDecl::
 ObjCForwardProtocolDecl(DeclContext *DC, SourceLocation L,
-                        ObjCProtocolDecl **Elts, unsigned nElts)
+                        ObjCProtocolDecl *const *Elts, unsigned nElts)
   : Decl(ObjCForwardProtocol, DC, L) { 
-  NumReferencedProtocols = nElts;
-  if (nElts) {
-    ReferencedProtocols = new ObjCProtocolDecl*[nElts];
-    memcpy(ReferencedProtocols, Elts, nElts*sizeof(ObjCProtocolDecl*));
-  } else {
-    ReferencedProtocols = 0;
-  }
+  ReferencedProtocols.set(Elts, nElts);
 }
 
 void ObjCForwardProtocolDecl::Destroy(ASTContext &C) {
-  delete [] ReferencedProtocols;
-  ReferencedProtocols = 0;
+  ReferencedProtocols.clear();
+  Decl::Destroy(C);
 }
 
 ObjCCategoryDecl *ObjCCategoryDecl::Create(ASTContext &C, DeclContext *DC,