From 984ae99624bf3040483c02eeb44a039c2e50e518 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 Jun 2025 19:57:32 +0200 Subject: [PATCH 1/2] Fix: Python API doc build fails after previous pointcloud fix This is now always in context, not just for experimental features. Ref #140516 --- doc/python_api/sphinx_doc_gen.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py index 0cc74f1c2ef..c5e27d68bf1 100644 --- a/doc/python_api/sphinx_doc_gen.py +++ b/doc/python_api/sphinx_doc_gen.py @@ -1227,9 +1227,10 @@ context_type_map = { "particle_settings": [("ParticleSettings", False)], "particle_system": [("ParticleSystem", False)], "particle_system_editable": [("ParticleSystem", False)], - "property": [("AnyType", False), ("str", False), ("int", False)], + "pointcloud": [("PointCloud", False)], "pose_bone": [("PoseBone", False)], "pose_object": [("Object", False)], + "property": [("AnyType", False), ("str", False), ("int", False)], "scene": [("Scene", False)], "sculpt_object": [("Object", False)], "selectable_objects": [("Object", True)], @@ -1277,7 +1278,7 @@ context_type_map = { if bpy.app.build_options.experimental_features: for key, value in { - "pointcloud": [("PointCloud", False)], + # No experimental members in context currently. }.items(): assert key not in context_type_map, "Duplicate, the member must be removed from one of the dictionaries" context_type_map[key] = value From 03b1071bcb5725bcf18c048047f810d32c74d8ee Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 Jun 2025 20:04:57 +0200 Subject: [PATCH 2/2] Fix: Invalid snprintf into the same string in recent bugfix Mistake in 5b1126da664318689f --- source/blender/blenkernel/intern/image_save.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/blender/blenkernel/intern/image_save.cc b/source/blender/blenkernel/intern/image_save.cc index 2599cec3830..283c2ffa358 100644 --- a/source/blender/blenkernel/intern/image_save.cc +++ b/source/blender/blenkernel/intern/image_save.cc @@ -112,8 +112,10 @@ bool BKE_image_save_options_init(ImageSaveOptions *opts, /* For movies, replace extension and add the frame number to avoid writing over the movie file * itself and provide a good default file path. */ if (ima->source == IMA_SRC_MOVIE) { - BLI_path_extension_strip(opts->filepath); - SNPRINTF(opts->filepath, "%s_%.*d", opts->filepath, 4, ibuf->fileframe); + char filepath_no_ext[FILE_MAX]; + STRNCPY(filepath_no_ext, opts->filepath); + BLI_path_extension_strip(filepath_no_ext); + SNPRINTF(opts->filepath, "%s_%.*d", filepath_no_ext, 4, ibuf->fileframe); BKE_image_path_ext_from_imformat_ensure( opts->filepath, sizeof(opts->filepath), &opts->im_format); }