diff options
Diffstat (limited to 'source/slang/slang.cpp')
| -rw-r--r-- | source/slang/slang.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 074c71f21..c78ca0a4d 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -2993,10 +2993,23 @@ namespace Slang { SlangResult _addLibraryReference(EndToEndCompileRequest* req, Stream* stream) { + // Load up the module + RiffContainer container; + SLANG_RETURN_ON_FAIL(RiffUtil::read(stream, container)); + + List<RefPtr<Module>> modules; + + if (SLANG_FAILED(ASTSerialReader::readContainerModules(&container, req->getLinkage(), modules))) + { + req->getSink()->diagnose(SourceLoc(), Diagnostics::unableToAddReferenceToModuleContainer); + return SLANG_FAIL; + } + // Read all of the contained modules List<RefPtr<IRModule>> irModules; List<FrontEndCompileRequest::ExtraEntryPointInfo> entryPointMangledNames; - if (SLANG_FAILED(IRSerialReader::readStreamModules(stream, req->getSession(), req->getFrontEndReq()->getSourceManager(), irModules, entryPointMangledNames))) + + if (SLANG_FAILED(IRSerialReader::readContainerModules(&container, req->getSession(), req->getFrontEndReq()->getSourceManager(), irModules, entryPointMangledNames))) { req->getSink()->diagnose(SourceLoc(), Diagnostics::unableToAddReferenceToModuleContainer); return SLANG_FAIL; |
