Skip to content

Commit addff76

Browse files
committed
[LLDB] Add an API for unregistering MemoryBuffer modules (NFC)
1 parent d704461 commit addff76

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

include/swift/Serialization/SerializedModuleLoader.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -373,11 +373,14 @@ class MemoryBufferSerializedModuleLoader : public SerializedModuleLoaderBase {
373373
/// FIXME: make this an actual import *path* once submodules are designed.
374374
bool registerMemoryBuffer(StringRef importPath,
375375
std::unique_ptr<llvm::MemoryBuffer> input,
376-
llvm::VersionTuple version) {
377-
return MemoryBuffers
378-
.insert({importPath, MemoryBufferInfo(std::move(input), version)})
379-
.second;
380-
}
376+
llvm::VersionTuple version);
377+
378+
/// During the transtion to explicitly tracked module dependencies LLDB may
379+
/// instruct this loader to forget one of the (now redundant) MemoryBuffers
380+
/// because it found an explicit module file on disk.
381+
///
382+
/// \return true if the importPath existed.
383+
bool unregisterMemoryBuffer(StringRef importPath);
381384

382385
void collectVisibleTopLevelModuleNames(
383386
SmallVectorImpl<Identifier> &names) const override {}

lib/Serialization/SerializedModuleLoader.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1708,6 +1708,19 @@ MemoryBufferSerializedModuleLoader::loadModule(SourceLoc importLoc,
17081708
return M;
17091709
}
17101710

1711+
bool MemoryBufferSerializedModuleLoader::registerMemoryBuffer(
1712+
StringRef importPath, std::unique_ptr<llvm::MemoryBuffer> input,
1713+
llvm::VersionTuple version) {
1714+
return MemoryBuffers
1715+
.insert({importPath, MemoryBufferInfo(std::move(input), version)})
1716+
.second;
1717+
}
1718+
1719+
bool MemoryBufferSerializedModuleLoader::unregisterMemoryBuffer(
1720+
StringRef importPath) {
1721+
return MemoryBuffers.erase(importPath);
1722+
}
1723+
17111724
void SerializedModuleLoaderBase::loadExtensions(NominalTypeDecl *nominal,
17121725
unsigned previousGeneration) {
17131726
for (auto &modulePair : LoadedModuleFiles) {

0 commit comments

Comments
 (0)