From 89a3b178534c042f97f18f5ecaac3456733c77d4 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 24 Oct 2016 10:09:13 +0200 Subject: Fix T49827L Crash linking material while in Material viewport shading mode Material linking might and does change the way how drawObject is calculated but does not tag drawObject for recalculation in any way. Now use dependency graph to tag draw object for reclaculation. Currently do this using OB_RECALC_DATA taq since tagging is not very granular yet. In the future we can introduce ore granular tagging in the new dependency graph easily. Simple and safe for 2.78a. --- source/blender/editors/object/object_relations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/editors/object') diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 79544f80e95..d1232fd2aab 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1575,7 +1575,7 @@ static int make_links_data_exec(bContext *C, wmOperator *op) Material *ma = give_current_material(ob_src, a + 1); assign_material(ob_dst, ma, a + 1, BKE_MAT_ASSIGN_USERPREF); /* also works with ma==NULL */ } - DAG_id_tag_update(&ob_dst->id, 0); + DAG_id_tag_update(&ob_dst->id, OB_RECALC_DATA); break; case MAKE_LINKS_ANIMDATA: BKE_animdata_copy_id((ID *)ob_dst, (ID *)ob_src, false); -- cgit v1.2.3