[Serialization] Use a StringMap for registered buffers instead of a std::map.

Also, erase empty entries from the map once they've been loaded, just in
case we end up registering /more/ buffers later.

No intended functionality change.

Swift SVN r25202
This commit is contained in:
Jordan Rose
2015-02-11 23:07:46 +00:00
parent 8737bdde2e
commit b6a247cf06
2 changed files with 7 additions and 9 deletions

View File

@@ -60,7 +60,7 @@ enum class ModuleStatus {
class SerializedModuleLoader : public ModuleLoader {
private:
ASTContext &Ctx;
std::map<std::string, std::unique_ptr<llvm::MemoryBuffer> > MemoryBuffers;
llvm::StringMap<std::unique_ptr<llvm::MemoryBuffer>> MemoryBuffers;
/// A { module, generation # } pair.
using LoadedModulePair = std::pair<std::unique_ptr<ModuleFile>, unsigned>;
std::vector<LoadedModulePair> LoadedModuleFiles;
@@ -113,7 +113,7 @@ public:
/// FIXME: make this an actual access *path* once submodules are designed.
void registerMemoryBuffer(StringRef AccessPath,
std::unique_ptr<llvm::MemoryBuffer> input) {
MemoryBuffers[AccessPath].reset(input.release());
MemoryBuffers[AccessPath] = std::move(input);
}
virtual void loadExtensions(NominalTypeDecl *nominal,