summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/Serialization/ASTReader.h1
-rw-r--r--clang/lib/Serialization/ASTReader.cpp24
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);
+}
+
OpenPOWER on IntegriCloud