diff options
author | Sam Bishop <sam@bishop.dhs.org> | 2008-04-11 15:01:25 +0000 |
---|---|---|
committer | Sam Bishop <sam@bishop.dhs.org> | 2008-04-11 15:01:25 +0000 |
commit | 703ae9624b31fa44e3c4b8292d96dfb51b24c15f (patch) | |
tree | 18d9503ae88b909b21c6f3239c9c61aaab4fa5e4 /clang | |
parent | 4c088b766d03b84486aa45cd5e536dbb11a7fa2b (diff) | |
download | bcm5719-llvm-703ae9624b31fa44e3c4b8292d96dfb51b24c15f.tar.gz bcm5719-llvm-703ae9624b31fa44e3c4b8292d96dfb51b24c15f.zip |
Stub out and start using a Decl::Destroy() method.
llvm-svn: 49532
Diffstat (limited to 'clang')
-rw-r--r-- | clang/include/clang/AST/DeclBase.h | 3 | ||||
-rw-r--r-- | clang/lib/AST/Decl.cpp | 4 | ||||
-rw-r--r-- | clang/lib/AST/TranslationUnit.cpp | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/clang/include/clang/AST/DeclBase.h b/clang/include/clang/AST/DeclBase.h index d1b48b8a621..ec3c753051c 100644 --- a/clang/include/clang/AST/DeclBase.h +++ b/clang/include/clang/AST/DeclBase.h @@ -179,6 +179,9 @@ public: /// Create - Deserialize a Decl from Bitcode. static Decl* Create(llvm::Deserializer& D, ASTContext& C); + /// Destroy - Call destructors and release memory. + void Destroy(ASTContext& C) const; + protected: /// EmitImpl - Provides the subclass-specific serialization logic for /// serializing out a decl. diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 2ef31e42e54..43da07cc245 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -329,6 +329,10 @@ const Attr *Decl::getAttrs() const { return (*DeclAttrs)[this]; } +void Decl::Destroy(ASTContext& C) const { + C.getAllocator().Deallocate((void *)this); +} + //===----------------------------------------------------------------------===// // DeclContext Implementation //===----------------------------------------------------------------------===// diff --git a/clang/lib/AST/TranslationUnit.cpp b/clang/lib/AST/TranslationUnit.cpp index b3a2e68f60c..0198f6f1cf7 100644 --- a/clang/lib/AST/TranslationUnit.cpp +++ b/clang/lib/AST/TranslationUnit.cpp @@ -32,7 +32,7 @@ enum { BasicMetadataBlock = 1, TranslationUnit::~TranslationUnit() { for (iterator I=begin(), E=end(); I!=E; ++I) - delete *I; + (*I)->Destroy(*Context); } bool clang::EmitASTBitcodeFile(const TranslationUnit& TU, |