From 9126e7e9c834f3ee3c52b7f9bb383ab4eeb202f6 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 8 Nov 2024 23:23:35 +0100 Subject: [PATCH] Material: Replace YAML::LoadFile() with YAML::Load() YAML::LoadFile() cannot be used on Windows because it doesn't support UTF-16 to load a file from an arbitrary location This fixes #17097 --- src/Mod/Material/App/ModelLoader.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Mod/Material/App/ModelLoader.cpp b/src/Mod/Material/App/ModelLoader.cpp index ef816e6b9c..4684704961 100644 --- a/src/Mod/Material/App/ModelLoader.cpp +++ b/src/Mod/Material/App/ModelLoader.cpp @@ -27,7 +27,9 @@ #endif #include +#include #include +#include #include "Model.h" @@ -76,7 +78,9 @@ const QString ModelLoader::getUUIDFromPath(const QString& path) } try { - YAML::Node yamlroot = YAML::LoadFile(path.toStdString()); + Base::FileInfo fi(path.toStdString()); + Base::ifstream str(fi); + YAML::Node yamlroot = YAML::Load(str); std::string base = "Model"; if (yamlroot["AppearanceModel"]) { base = "AppearanceModel"; @@ -103,7 +107,9 @@ std::shared_ptr ModelLoader::getModelFromPath(std::shared_ptr