summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DeclObjC.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-20 18:10:37 +0000
committerChris Lattner <sabre@nondot.org>2009-02-20 18:10:37 +0000
commited89b3ff2f02ee9cafb358ee66cf1a8192b5de59 (patch)
treef1cd097021b399e0cd5040391210b8190465604a /clang/lib/AST/DeclObjC.cpp
parentcdbb5e336d0f6072cc09ec744e1bcf0254c317ab (diff)
downloadbcm5719-llvm-ed89b3ff2f02ee9cafb358ee66cf1a8192b5de59.tar.gz
bcm5719-llvm-ed89b3ff2f02ee9cafb358ee66cf1a8192b5de59.zip
Change ObjCForwardProtocolDecl to use an ObjCList.
llvm-svn: 65131
Diffstat (limited to 'clang/lib/AST/DeclObjC.cpp')
-rw-r--r--clang/lib/AST/DeclObjC.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/clang/lib/AST/DeclObjC.cpp b/clang/lib/AST/DeclObjC.cpp
index b0d36dbab8d..2ae7ccc8165 100644
--- a/clang/lib/AST/DeclObjC.cpp
+++ b/clang/lib/AST/DeclObjC.cpp
@@ -137,26 +137,21 @@ void ObjCClassDecl::Destroy(ASTContext &C) {
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,
OpenPOWER on IntegriCloud