diff options
author | Chris Lattner <sabre@nondot.org> | 2009-02-20 20:48:45 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-02-20 20:48:45 +0000 |
commit | a8ff9f455d94d9609766cfd5186b6e21dc2102f1 (patch) | |
tree | 2a867712ba037cc413e79eb13b059c5cd0543193 | |
parent | 077e0f09d12a4bd61908863df35528de1cd80c53 (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.h | 19 |
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; |