diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-04-14 00:09:21 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-04-14 00:09:21 +0000 |
commit | 25f54c72acf02fc9d6f33e7a4d301e9b21b6ac71 (patch) | |
tree | f6980757330875dbaeb7fa2ac80992b53f832710 /clang/lib/Sema/IdentifierResolver.cpp | |
parent | 556877c1e677a33052662a1879616129fa11559e (diff) | |
download | bcm5719-llvm-25f54c72acf02fc9d6f33e7a4d301e9b21b6ac71.tar.gz bcm5719-llvm-25f54c72acf02fc9d6f33e7a4d301e9b21b6ac71.zip |
Move IdDeclInfoMap class in an anonymous namespace. Suggestion by Chris Lattner.
llvm-svn: 49628
Diffstat (limited to 'clang/lib/Sema/IdentifierResolver.cpp')
-rw-r--r-- | clang/lib/Sema/IdentifierResolver.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/clang/lib/Sema/IdentifierResolver.cpp b/clang/lib/Sema/IdentifierResolver.cpp index 037802c6404..c062e808753 100644 --- a/clang/lib/Sema/IdentifierResolver.cpp +++ b/clang/lib/Sema/IdentifierResolver.cpp @@ -69,13 +69,11 @@ public: void RemoveShadowed(NamedDecl *D); }; -} // end anonymous namespace - /// IdDeclInfoMap - Associates IdDeclInfos with Identifiers. /// Allocates 'pools' (vectors of IdDeclInfos) to avoid allocating each /// individual IdDeclInfo to heap. -class IdentifierResolver::IdDeclInfoMap { +class IdDeclInfoMap { static const unsigned int VECTOR_SIZE = 512; // Holds vectors of IdDeclInfos that serve as 'pools'. // New vectors are added when the current one is full. @@ -90,9 +88,13 @@ public: IdDeclInfo &operator[](IdentifierInfo *II); }; +} // end anonymous namespace -IdentifierResolver::IdentifierResolver() : IdDeclInfos(*new IdDeclInfoMap) {} -IdentifierResolver::~IdentifierResolver() { delete &IdDeclInfos; } + +IdentifierResolver::IdentifierResolver() : IdDeclInfos(new IdDeclInfoMap) {} +IdentifierResolver::~IdentifierResolver() { + delete static_cast<IdDeclInfoMap*>(IdDeclInfos); +} /// AddDecl - Link the decl to its shadowed decl chain. void IdentifierResolver::AddDecl(NamedDecl *D, Scope *S) { @@ -109,7 +111,8 @@ void IdentifierResolver::AddDecl(NamedDecl *D, Scope *S) { if (isDeclPtr(Ptr)) { II->setFETokenInfo(NULL); - IDI = &IdDeclInfos[II]; + IdDeclInfoMap &Map = *static_cast<IdDeclInfoMap*>(IdDeclInfos); + IDI = &Map[II]; IDI->PushShadowed(static_cast<NamedDecl*>(Ptr)); } else IDI = toIdDeclInfo(Ptr); @@ -151,7 +154,8 @@ void IdentifierResolver::AddGlobalDecl(NamedDecl *D) { if (isDeclPtr(Ptr)) { II->setFETokenInfo(NULL); - IDI = &IdDeclInfos[II]; + IdDeclInfoMap &Map = *static_cast<IdDeclInfoMap*>(IdDeclInfos); + IDI = &Map[II]; IDI->PushShadowed(static_cast<NamedDecl*>(Ptr)); } else IDI = toIdDeclInfo(Ptr); @@ -231,7 +235,7 @@ void IdDeclInfo::RemoveShadowed(NamedDecl *D) { /// Returns the IdDeclInfo associated to the IdentifierInfo. /// It creates a new IdDeclInfo if one was not created before for this id. -IdDeclInfo &IdentifierResolver::IdDeclInfoMap::operator[](IdentifierInfo *II) { +IdDeclInfo &IdDeclInfoMap::operator[](IdentifierInfo *II) { assert (II && "null IdentifierInfo passed"); void *Ptr = II->getFETokenInfo<void>(); |