summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DeclObjC.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/AST/DeclObjC.cpp')
-rw-r--r--clang/lib/AST/DeclObjC.cpp55
1 files changed, 6 insertions, 49 deletions
diff --git a/clang/lib/AST/DeclObjC.cpp b/clang/lib/AST/DeclObjC.cpp
index a14e3ba068c..2bfad5a7be6 100644
--- a/clang/lib/AST/DeclObjC.cpp
+++ b/clang/lib/AST/DeclObjC.cpp
@@ -60,10 +60,13 @@ ObjCInterfaceDecl *ObjCInterfaceDecl::Create(ASTContext &C,
isInternal);
}
-ObjCInterfaceDecl::~ObjCInterfaceDecl() {
- delete [] Ivars;
+ObjCContainerDecl::~ObjCContainerDecl() {
delete [] InstanceMethods;
delete [] ClassMethods;
+}
+
+ObjCInterfaceDecl::~ObjCInterfaceDecl() {
+ delete [] Ivars;
delete [] PropertyDecl;
// FIXME: CategoryList?
}
@@ -114,8 +117,6 @@ ObjCProtocolDecl *ObjCProtocolDecl::Create(ASTContext &C,
}
ObjCProtocolDecl::~ObjCProtocolDecl() {
- delete [] InstanceMethods;
- delete [] ClassMethods;
delete [] PropertyDecl;
}
@@ -384,7 +385,7 @@ void ObjCImplementationDecl::ObjCAddInstanceVariablesToClassImpl(
/// addMethods - Insert instance and methods declarations into
/// ObjCInterfaceDecl's InsMethods and ClsMethods fields.
///
-void ObjCInterfaceDecl::addMethods(ObjCMethodDecl **insMethods,
+void ObjCContainerDecl::addMethods(ObjCMethodDecl **insMethods,
unsigned numInsMembers,
ObjCMethodDecl **clsMethods,
unsigned numClsMembers,
@@ -607,50 +608,6 @@ void ObjCCategoryDecl::addProperties(ObjCPropertyDecl **Properties,
memcpy(PropertyDecl, Properties, NumProperties*sizeof(ObjCPropertyDecl*));
}
-/// addMethods - Insert instance and methods declarations into
-/// ObjCProtocolDecl's ProtoInsMethods and ProtoClsMethods fields.
-///
-void ObjCProtocolDecl::addMethods(ObjCMethodDecl **insMethods,
- unsigned numInsMembers,
- ObjCMethodDecl **clsMethods,
- unsigned numClsMembers,
- SourceLocation endLoc) {
- NumInstanceMethods = numInsMembers;
- if (numInsMembers) {
- InstanceMethods = new ObjCMethodDecl*[numInsMembers];
- memcpy(InstanceMethods, insMethods, numInsMembers*sizeof(ObjCMethodDecl*));
- }
- NumClassMethods = numClsMembers;
- if (numClsMembers) {
- ClassMethods = new ObjCMethodDecl*[numClsMembers];
- memcpy(ClassMethods, clsMethods, numClsMembers*sizeof(ObjCMethodDecl*));
- }
- AtEndLoc = endLoc;
-}
-
-
-
-/// addMethods - Insert instance and methods declarations into
-/// ObjCCategoryDecl's CatInsMethods and CatClsMethods fields.
-///
-void ObjCCategoryDecl::addMethods(ObjCMethodDecl **insMethods,
- unsigned numInsMembers,
- ObjCMethodDecl **clsMethods,
- unsigned numClsMembers,
- SourceLocation endLoc) {
- NumInstanceMethods = numInsMembers;
- if (numInsMembers) {
- InstanceMethods = new ObjCMethodDecl*[numInsMembers];
- memcpy(InstanceMethods, insMethods, numInsMembers*sizeof(ObjCMethodDecl*));
- }
- NumClassMethods = numClsMembers;
- if (numClsMembers) {
- ClassMethods = new ObjCMethodDecl*[numClsMembers];
- memcpy(ClassMethods, clsMethods, numClsMembers*sizeof(ObjCMethodDecl*));
- }
- AtEndLoc = endLoc;
-}
-
/// FindPropertyDeclaration - Finds declaration of the property given its name
/// in 'PropertyId' and returns it. It returns 0, if not found.
///
OpenPOWER on IntegriCloud