Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions include/swift/Serialization/SerializedModuleLoader.h
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,9 @@ class ImplicitSerializedModuleLoader : public SerializedModuleLoaderBase {
class MemoryBufferSerializedModuleLoader : public SerializedModuleLoaderBase {

struct MemoryBufferInfo {
MemoryBufferInfo(std::unique_ptr<llvm::MemoryBuffer> &&buffer,
llvm::VersionTuple userVersion)
: buffer(std::move(buffer)), userVersion(userVersion) {}
std::unique_ptr<llvm::MemoryBuffer> buffer;
llvm::VersionTuple userVersion;
};
Expand Down Expand Up @@ -350,11 +353,16 @@ class MemoryBufferSerializedModuleLoader : public SerializedModuleLoaderBase {
/// discovered in the __swift_ast section of a Mach-O file (or the .swift_ast
/// section of an ELF file) to the search path.
///
/// If a module is inserted twice, the first one wins, and the return value is
/// false.
///
/// FIXME: make this an actual import *path* once submodules are designed.
void registerMemoryBuffer(StringRef importPath,
bool registerMemoryBuffer(StringRef importPath,
std::unique_ptr<llvm::MemoryBuffer> input,
llvm::VersionTuple version) {
MemoryBuffers[importPath] = {std::move(input), version};
return MemoryBuffers
.insert({importPath, MemoryBufferInfo(std::move(input), version)})
.second;
}

void collectVisibleTopLevelModuleNames(
Expand Down