diff options
-rw-r--r-- | clang/include/clang/Serialization/ASTReader.h | 1 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 24 |
2 files changed, 16 insertions, 9 deletions
diff --git a/clang/include/clang/Serialization/ASTReader.h b/clang/include/clang/Serialization/ASTReader.h index 41d64b8b0de..d4a0ea9f48c 100644 --- a/clang/include/clang/Serialization/ASTReader.h +++ b/clang/include/clang/Serialization/ASTReader.h @@ -198,6 +198,7 @@ private: /// \brief Information that is needed for every file in the chain. struct PerFileData { PerFileData(); + ~PerFileData(); /// \brief The AST stat cache installed for this file, if any. /// diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index eade7650791..fb26851e3a3 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -448,15 +448,6 @@ ASTReader::~ASTReader() { delete Chain[e - i - 1]; } -ASTReader::PerFileData::PerFileData() - : StatCache(0), LocalNumSLocEntries(0), LocalNumTypes(0), TypeOffsets(0), - LocalNumDecls(0), DeclOffsets(0), LocalNumIdentifiers(0), - IdentifierOffsets(0), IdentifierTableData(0), IdentifierLookupTable(0), - LocalNumMacroDefinitions(0), MacroDefinitionOffsets(0), - NumPreallocatedPreprocessingEntities(0), SelectorLookupTable(0), - SelectorLookupTableData(0), SelectorOffsets(0), LocalNumSelectors(0) -{} - void ASTReader::setDeserializationListener(ASTDeserializationListener *Listener) { DeserializationListener = Listener; @@ -3838,3 +3829,18 @@ void ASTReader::FinishedDeserializing() { } --NumCurrentElementsDeserializing; } + +ASTReader::PerFileData::PerFileData() + : StatCache(0), LocalNumSLocEntries(0), LocalNumTypes(0), TypeOffsets(0), + LocalNumDecls(0), DeclOffsets(0), LocalNumIdentifiers(0), + IdentifierOffsets(0), IdentifierTableData(0), IdentifierLookupTable(0), + LocalNumMacroDefinitions(0), MacroDefinitionOffsets(0), + NumPreallocatedPreprocessingEntities(0), SelectorLookupTable(0), + SelectorLookupTableData(0), SelectorOffsets(0), LocalNumSelectors(0) +{} + +ASTReader::PerFileData::~PerFileData() { + delete static_cast<ASTIdentifierLookupTable *>(IdentifierLookupTable); + delete static_cast<ASTSelectorLookupTable *>(SelectorLookupTable); +} + |