diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-12-14 17:12:03 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-12-14 17:12:03 +0000 |
commit | af764723bf94f8cc7596e2b2f2a97766d188ed98 (patch) | |
tree | 5709cfa021ffa4de38d3c4203811d326f39aee99 /lib/AST/DeclObjC.cpp | |
parent | 553689148f546783e127749438bf6d7806e6bb1d (diff) |
Eliminate the vistigial ObjCClassDecl::ObjCClassRef, and inline its
members into ObjCClassDecl, saving ourselves one pointer per forward
declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146564 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/DeclObjC.cpp')
-rw-r--r-- | lib/AST/DeclObjC.cpp | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/lib/AST/DeclObjC.cpp b/lib/AST/DeclObjC.cpp index 2157762e7f..38efadf3b5 100644 --- a/lib/AST/DeclObjC.cpp +++ b/lib/AST/DeclObjC.cpp @@ -942,31 +942,21 @@ void ObjCProtocolDecl::completedForwardDecl() { //===----------------------------------------------------------------------===// ObjCClassDecl::ObjCClassDecl(DeclContext *DC, SourceLocation L, - ObjCInterfaceDecl *const Elt, - const SourceLocation Loc, - ASTContext &C) - : Decl(ObjCClass, DC, L) { - setClass(C, Elt, Loc); + ObjCInterfaceDecl *Interface, + SourceLocation InterfaceLoc) + : Decl(ObjCClass, DC, L), Interface(Interface), InterfaceLoc(InterfaceLoc) +{ } ObjCClassDecl *ObjCClassDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L, - ObjCInterfaceDecl *const Elt, - const SourceLocation Loc) { - return new (C) ObjCClassDecl(DC, L, Elt, Loc, C); + ObjCInterfaceDecl *Interface, + SourceLocation InterfaceLoc) { + return new (C) ObjCClassDecl(DC, L, Interface, InterfaceLoc); } -void ObjCClassDecl::setClass(ASTContext &C, ObjCInterfaceDecl*const Cls, - const SourceLocation Loc) { - - ForwardDecl = (ObjCClassRef*) C.Allocate(sizeof(ObjCClassRef), - llvm::alignOf<ObjCClassRef>()); - new (ForwardDecl) ObjCClassRef(Cls, Loc); -} - SourceRange ObjCClassDecl::getSourceRange() const { - // FIXME: We should include the semicolon - return SourceRange(getLocation(), ForwardDecl->getLocation()); + return SourceRange(getLocation(), InterfaceLoc); } //===----------------------------------------------------------------------===// |