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,