aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/DeclObjC.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-12-14 17:12:03 +0000
committerDouglas Gregor <dgregor@apple.com>2011-12-14 17:12:03 +0000
commitaf764723bf94f8cc7596e2b2f2a97766d188ed98 (patch)
tree5709cfa021ffa4de38d3c4203811d326f39aee99 /lib/AST/DeclObjC.cpp
parent553689148f546783e127749438bf6d7806e6bb1d (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.cpp26
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);
}
//===----------------------------------------------------------------------===//