From 7af25777dc9285f868ee12df18cf7c2a8d31e6d5 Mon Sep 17 00:00:00 2001 From: SirLynix Date: Fri, 25 Mar 2022 12:56:20 +0100 Subject: [PATCH] Shader/FilesystemModuleResolver: Don't register in case of parsing errors --- src/Nazara/Shader/FilesystemModuleResolver.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Nazara/Shader/FilesystemModuleResolver.cpp b/src/Nazara/Shader/FilesystemModuleResolver.cpp index fe81c44e1..cdd92daee 100644 --- a/src/Nazara/Shader/FilesystemModuleResolver.cpp +++ b/src/Nazara/Shader/FilesystemModuleResolver.cpp @@ -26,9 +26,18 @@ namespace Nz void FilesystemModuleResolver::RegisterModule(const std::filesystem::path& realPath) { - ShaderAst::ModulePtr module = ShaderLang::ParseFromFile(realPath); - if (!module) + ShaderAst::ModulePtr module; + try + { + module = ShaderLang::ParseFromFile(realPath); + if (!module) + return; + } + catch (const std::exception& e) + { + NazaraError("failed to register module from file " + realPath.generic_u8string() + ": " + e.what()); return; + } std::string moduleName = module->metadata->moduleName; RegisterModule(std::move(module));