Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAras Pranckevicius <aras@nesnausk.org>2022-05-04 15:11:25 +0300
committerAras Pranckevicius <aras@nesnausk.org>2022-05-04 15:11:25 +0300
commit3bdda67e509587dcf97ef3cec3a8654e3383aec8 (patch)
treee782668335983412317d1eec1bd1f959c335c9ee /source/blender/io/wavefront_obj
parent48c0738d4a21bba04483ef3798403a718d6b8e6f (diff)
parentcbeb8770cc4daec5c81f8d8ce060a1b594c039bb (diff)
Merge branch 'blender-v3.2-release'
Diffstat (limited to 'source/blender/io/wavefront_obj')
-rw-r--r--source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc9
-rw-r--r--source/blender/io/wavefront_obj/importer/obj_import_file_reader.hh4
-rw-r--r--source/blender/io/wavefront_obj/importer/obj_importer.cc2
-rw-r--r--source/blender/io/wavefront_obj/tests/obj_mtl_parser_tests.cc2
4 files changed, 11 insertions, 6 deletions
diff --git a/source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc b/source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc
index 6c3dc6e448b..f88b3e143a6 100644
--- a/source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc
+++ b/source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc
@@ -618,8 +618,13 @@ Span<std::string> OBJParser::mtl_libraries() const
return mtl_libraries_;
}
-void OBJParser::add_mtl_library(const std::string &path)
+void OBJParser::add_mtl_library(StringRef path)
{
+ /* Remove any quotes from start and end (T67266, T97794). */
+ if (path.size() > 2 && path.startswith("\"") && path.endswith("\"")) {
+ path = path.drop_prefix(1).drop_suffix(1);
+ }
+
if (!mtl_libraries_.contains(path)) {
mtl_libraries_.append(path);
}
@@ -642,7 +647,7 @@ void OBJParser::add_default_mtl_library()
}
}
-MTLParser::MTLParser(StringRef mtl_library, StringRefNull obj_filepath)
+MTLParser::MTLParser(StringRefNull mtl_library, StringRefNull obj_filepath)
{
char obj_file_dir[FILE_MAXDIR];
BLI_split_dir_part(obj_filepath.data(), obj_file_dir, FILE_MAXDIR);
diff --git a/source/blender/io/wavefront_obj/importer/obj_import_file_reader.hh b/source/blender/io/wavefront_obj/importer/obj_import_file_reader.hh
index 8dd60d17100..e41a7f8518e 100644
--- a/source/blender/io/wavefront_obj/importer/obj_import_file_reader.hh
+++ b/source/blender/io/wavefront_obj/importer/obj_import_file_reader.hh
@@ -41,7 +41,7 @@ class OBJParser {
Span<std::string> mtl_libraries() const;
private:
- void add_mtl_library(const std::string &path);
+ void add_mtl_library(StringRef path);
void add_default_mtl_library();
};
@@ -57,7 +57,7 @@ class MTLParser {
/**
* Open material library file.
*/
- MTLParser(StringRef mtl_library_, StringRefNull obj_filepath);
+ MTLParser(StringRefNull mtl_library_, StringRefNull obj_filepath);
/**
* Read MTL file(s) and add MTLMaterial instances to the given Map reference.
diff --git a/source/blender/io/wavefront_obj/importer/obj_importer.cc b/source/blender/io/wavefront_obj/importer/obj_importer.cc
index d9c033e1f77..b18ff2cf454 100644
--- a/source/blender/io/wavefront_obj/importer/obj_importer.cc
+++ b/source/blender/io/wavefront_obj/importer/obj_importer.cc
@@ -108,7 +108,7 @@ void importer_main(Main *bmain,
OBJParser obj_parser{import_params, read_buffer_size};
obj_parser.parse(all_geometries, global_vertices);
- for (StringRef mtl_library : obj_parser.mtl_libraries()) {
+ for (StringRefNull mtl_library : obj_parser.mtl_libraries()) {
MTLParser mtl_parser{mtl_library, import_params.filepath};
mtl_parser.parse_and_store(materials);
}
diff --git a/source/blender/io/wavefront_obj/tests/obj_mtl_parser_tests.cc b/source/blender/io/wavefront_obj/tests/obj_mtl_parser_tests.cc
index 76eac70cebf..068cdc0bf3a 100644
--- a/source/blender/io/wavefront_obj/tests/obj_mtl_parser_tests.cc
+++ b/source/blender/io/wavefront_obj/tests/obj_mtl_parser_tests.cc
@@ -31,7 +31,7 @@ class obj_mtl_parser_test : public testing::Test {
std::string obj_dir = blender::tests::flags_test_asset_dir() + "/io_tests/obj/";
check_impl(file, obj_dir, expect, expect_count);
}
- void check_impl(StringRef mtl_file_path,
+ void check_impl(StringRefNull mtl_file_path,
StringRefNull file_dir,
const MTLMaterial *expect,
size_t expect_count)