diff options
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 8 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 21 |
2 files changed, 10 insertions, 19 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 9c9e8b3ca9e..c29033e833c 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -2541,11 +2541,11 @@ void ASTReader::makeModuleVisible(Module *Mod, // Push any non-explicit submodules onto the stack to be marked as // visible. - for (llvm::StringMap<Module *>::iterator Sub = Mod->SubModules.begin(), - SubEnd = Mod->SubModules.end(); + for (Module::submodule_iterator Sub = Mod->submodule_begin(), + SubEnd = Mod->submodule_end(); Sub != SubEnd; ++Sub) { - if (!Sub->getValue()->IsExplicit && Visited.insert(Sub->getValue())) - Stack.push_back(Sub->getValue()); + if (!(*Sub)->IsExplicit && Visited.insert(*Sub)) + Stack.push_back(*Sub); } // Push any exported modules onto the stack to be marked as visible. diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 9ed2a6c6d95..1317525c27d 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -1859,10 +1859,10 @@ unsigned ASTWriter::getSubmoduleID(Module *Mod) { /// given module). static unsigned getNumberOfModules(Module *Mod) { unsigned ChildModules = 0; - for (llvm::StringMap<Module *>::iterator Sub = Mod->SubModules.begin(), - SubEnd = Mod->SubModules.end(); + for (Module::submodule_iterator Sub = Mod->submodule_begin(), + SubEnd = Mod->submodule_end(); Sub != SubEnd; ++Sub) - ChildModules += getNumberOfModules(Sub->getValue()); + ChildModules += getNumberOfModules(*Sub); return ChildModules + 1; } @@ -2010,19 +2010,10 @@ void ASTWriter::WriteSubmodules(Module *WritingModule) { } // Queue up the submodules of this module. - llvm::SmallVector<StringRef, 2> SubModules; - - // Sort the submodules first, so we get a predictable ordering in the AST - // file. - for (llvm::StringMap<Module *>::iterator - Sub = Mod->SubModules.begin(), - SubEnd = Mod->SubModules.end(); + for (Module::submodule_iterator Sub = Mod->submodule_begin(), + SubEnd = Mod->submodule_end(); Sub != SubEnd; ++Sub) - SubModules.push_back(Sub->getKey()); - llvm::array_pod_sort(SubModules.begin(), SubModules.end()); - - for (unsigned I = 0, N = SubModules.size(); I != N; ++I) - Q.push(Mod->SubModules[SubModules[I]]); + Q.push(*Sub); } Stream.ExitBlock(); |