[Bf-blender-cvs] [5389964eea2] master: Add an assert to BKE_icon_changed() that we are actually dealing with ID icon.

Bastien Montagne noreply at git.blender.org
Fri Mar 16 17:19:01 CET 2018


Commit: 5389964eea27c4d0129171ee69129210ee522bc3
Author: Bastien Montagne
Date:   Fri Mar 16 17:17:19 2018 +0100
Branches: master
https://developer.blender.org/rB5389964eea27c4d0129171ee69129210ee522bc3

Add an assert to BKE_icon_changed() that we are actually dealing with ID icon.

Otherwise, ID->obj is an opaque pointer, wrong usage here could lead to
a vast amount of bad things.

===================================================================

M	source/blender/blenkernel/intern/icons.c

===================================================================

diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c
index d56d758d4f0..7302d62d20f 100644
--- a/source/blender/blenkernel/intern/icons.c
+++ b/source/blender/blenkernel/intern/icons.c
@@ -440,6 +440,9 @@ void BKE_icon_changed(const int icon_id)
 	icon = BLI_ghash_lookup(gIcons, SET_INT_IN_POINTER(icon_id));
 	
 	if (icon) {
+		/* We *only* expect ID-tied icons here, not non-ID icon/preview! */
+		BLI_assert(icon->type != 0);
+
 		/* Do not enforce creation of previews for valid ID types using BKE_previewimg_id_ensure() here ,
 		 * we only want to ensure *existing* preview images are properly tagged as changed/invalid, that's all. */
 		PreviewImage **p_prv = BKE_previewimg_id_get_p((ID *)icon->obj);



More information about the Bf-blender-cvs mailing list