diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-01-24 12:49:48 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-01-24 12:49:48 +0400 |
commit | 6510367c3864723449f9ce1022a55a5e60d7aef9 (patch) | |
tree | 97c7d127131bf92451f282413ffd09227aba6a0e /source/blender | |
parent | 69900035b32ab8e69e3994fee45a23c0f3367a77 (diff) |
Fix #33975: Crash when reloading texture
Two issues in texture_changed:
- Missing NULL check for material (slot could be empty)
- Materials could be linked to object, added special check for this
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/render/render_update.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index 38535eca918..16d7923baff 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -394,7 +394,14 @@ static void texture_changed(Main *bmain, Tex *tex) if (dm && totmaterial && material) { for (a = 0; a < *totmaterial; a++) { - if (material_uses_texture((*material)[a], tex)) { + Material *ma; + + if (ob->matbits && ob->matbits[a]) + ma = ob->mat[a]; + else + ma = (*material)[a]; + + if (ma && material_uses_texture(ma, tex)) { GPU_drawobject_free(dm); break; } |