diff options
Diffstat (limited to 'source/slang-record-replay/record')
| -rw-r--r-- | source/slang-record-replay/record/slang-session.cpp | 33 | ||||
| -rw-r--r-- | source/slang-record-replay/record/slang-session.h | 5 |
2 files changed, 38 insertions, 0 deletions
diff --git a/source/slang-record-replay/record/slang-session.cpp b/source/slang-record-replay/record/slang-session.cpp index 800d690fa..254e1b091 100644 --- a/source/slang-record-replay/record/slang-session.cpp +++ b/source/slang-record-replay/record/slang-session.cpp @@ -92,6 +92,39 @@ SLANG_NO_THROW slang::IModule* SessionRecorder::loadModuleFromIRBlob( return static_cast<slang::IModule*>(pModuleRecorder); } +SLANG_NO_THROW SlangResult SLANG_MCALL SessionRecorder::loadModuleInfoFromIRBlob( + slang::IBlob* source, + SlangInt& outModuleVersion, + const char*& outModuleCompilerVersion, + const char*& outModuleName) +{ + slangRecordLog(LogLevel::Verbose, "%s\n", __PRETTY_FUNCTION__); + + ParameterRecorder* recorder{}; + { + recorder = m_recordManager->beginMethodRecord( + ApiCallId::ISession_loadModuleFromIRBlob, + m_sessionHandle); + recorder->recordPointer(source); + recorder = m_recordManager->endMethodRecord(); + } + + const auto result = m_actualSession->loadModuleInfoFromIRBlob( + source, + outModuleVersion, + outModuleCompilerVersion, + outModuleName); + + { + recorder->recordInt64(outModuleVersion); + recorder->recordString(outModuleCompilerVersion); + recorder->recordString(outModuleName); + m_recordManager->apendOutput(); + } + + return result; +} + SLANG_NO_THROW slang::IModule* SessionRecorder::loadModuleFromSource( const char* moduleName, const char* path, diff --git a/source/slang-record-replay/record/slang-session.h b/source/slang-record-replay/record/slang-session.h index 9cff7beac..26c591b1c 100644 --- a/source/slang-record-replay/record/slang-session.h +++ b/source/slang-record-replay/record/slang-session.h @@ -29,6 +29,11 @@ public: const char* path, slang::IBlob* source, slang::IBlob** outDiagnostics = nullptr) override; + SLANG_NO_THROW SlangResult SLANG_MCALL loadModuleInfoFromIRBlob( + slang::IBlob* source, + SlangInt& outModuleVersion, + const char*& outModuleCompilerVersion, + const char*& outModuleName) override; SLANG_NO_THROW slang::IModule* SLANG_MCALL loadModuleFromSource( const char* moduleName, const char* path, |
