[Bf-blender-cvs] [ff1f5236ac7] blender-v3.2-release: Fix T98753: Outliner Unlink material in Blender File mode crashes
Julian Eisel
noreply at git.blender.org
Wed Jun 22 13:02:59 CEST 2022
Commit: ff1f5236ac7218c9f8cbebf8492885a0544d9b6a
Author: Julian Eisel
Date: Tue Jun 14 15:51:03 2022 +0200
Branches: blender-v3.2-release
https://developer.blender.org/rBff1f5236ac7218c9f8cbebf8492885a0544d9b6a
Fix T98753: Outliner Unlink material in Blender File mode crashes
This issue was only exposed by ba49345705a3. The ID pointer of the
material's parent tree-element wasn't actually pointing to an ID, but to
the list-base containing the IDs. It was just unlikely to cause issues
in practice, although an assert was thrown.
Just don't do anything if the object or object-data to unlink the
material from could not be found. The following commit will introduce a
error message about this.
===================================================================
M source/blender/editors/space_outliner/outliner_tools.cc
===================================================================
diff --git a/source/blender/editors/space_outliner/outliner_tools.cc b/source/blender/editors/space_outliner/outliner_tools.cc
index 5da64177e51..3fc6e6969c5 100644
--- a/source/blender/editors/space_outliner/outliner_tools.cc
+++ b/source/blender/editors/space_outliner/outliner_tools.cc
@@ -228,6 +228,12 @@ static void unlink_material_fn(bContext *UNUSED(C),
TreeStoreElem *UNUSED(tselem),
void *UNUSED(user_data))
{
+ if (!tsep || !TSE_IS_REAL_ID(tsep)) {
+ /* Valid case, no parent element of the material or it is not an ID (could be a #TSE_ID_BASE
+ * for example) so there's no data to unlink from. */
+ return;
+ }
+
Material **matar = nullptr;
int a, totcol = 0;
More information about the Bf-blender-cvs
mailing list