aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-20 20:48:45 +0000
committerChris Lattner <sabre@nondot.org>2009-02-20 20:48:45 +0000
commita8ff9f455d94d9609766cfd5186b6e21dc2102f1 (patch)
tree2a867712ba037cc413e79eb13b059c5cd0543193
parent077e0f09d12a4bd61908863df35528de1cd80c53 (diff)
more random cleanups, add some fixme's. ObjCCategoryImplDecl really
shouldn't be a NamedDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65153 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/DeclObjC.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/include/clang/AST/DeclObjC.h b/include/clang/AST/DeclObjC.h
index cc67431c94..4f51f66bb3 100644
--- a/include/clang/AST/DeclObjC.h
+++ b/include/clang/AST/DeclObjC.h
@@ -360,6 +360,7 @@ class ObjCInterfaceDecl : public ObjCContainerDecl {
ObjCList<ObjCIvarDecl> IVars;
/// List of categories defined for this class.
+ /// FIXME: Why is this a linked list??
ObjCCategoryDecl *CategoryList;
bool ForwardDecl:1; // declared with @class.
@@ -699,7 +700,8 @@ class ObjCCategoryDecl : public ObjCContainerDecl {
/// referenced protocols in this category.
ObjCList<ObjCProtocolDecl> ReferencedProtocols;
- /// Next category belonging to this class
+ /// Next category belonging to this class.
+ /// FIXME: this should not be a singly-linked list. Move storage elsewhere.
ObjCCategoryDecl *NextClassCategory;
SourceLocation EndLoc; // marks the '>' or identifier.
@@ -727,7 +729,7 @@ public:
return ReferencedProtocols;
}
- typedef ObjCProtocolDecl * const * protocol_iterator;
+ typedef ObjCList<ObjCProtocolDecl>::iterator protocol_iterator;
protocol_iterator protocol_begin() const {return ReferencedProtocols.begin();}
protocol_iterator protocol_end() const { return ReferencedProtocols.end(); }
@@ -757,15 +759,18 @@ public:
/// @dynamic p1,d1;
/// @end
///
+/// FIXME: Like ObjCImplementationDecl, this should not be a NamedDecl!
+/// FIXME: Introduce a new common base class for ObjCImplementationDecl and
+/// ObjCCategoryImplDecl
class ObjCCategoryImplDecl : public NamedDecl, public DeclContext {
/// Class interface for this category implementation
ObjCInterfaceDecl *ClassInterface;
/// implemented instance methods
- llvm::SmallVector<ObjCMethodDecl*, 32> InstanceMethods;
+ llvm::SmallVector<ObjCMethodDecl*, 16> InstanceMethods;
/// implemented class methods
- llvm::SmallVector<ObjCMethodDecl*, 32> ClassMethods;
+ llvm::SmallVector<ObjCMethodDecl*, 16> ClassMethods;
/// Property Implementations in this category
llvm::SmallVector<ObjCPropertyImplDecl*, 8> PropertyImplementations;
@@ -865,12 +870,12 @@ class ObjCImplementationDecl : public Decl, public DeclContext {
ObjCList<ObjCIvarDecl> IVars;
/// implemented instance methods
- llvm::SmallVector<ObjCMethodDecl*, 32> InstanceMethods;
+ llvm::SmallVector<ObjCMethodDecl*, 16> InstanceMethods;
/// implemented class methods
- llvm::SmallVector<ObjCMethodDecl*, 32> ClassMethods;
+ llvm::SmallVector<ObjCMethodDecl*, 16> ClassMethods;
- /// Propertys' being implemented
+ /// Properties being implemented
llvm::SmallVector<ObjCPropertyImplDecl*, 8> PropertyImplementations;
SourceLocation EndLoc;