Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-06-28 18:29:57 +0400
committerTon Roosendaal <ton@blender.org>2006-06-28 18:29:57 +0400
commit853cf242766bfd94811c7a55a8786c2080bb41f2 (patch)
treee0695c461341c847c84bd6815fc0b570a10b0611 /source
parenta3e49a23d7c7679b640b2a565a772fa416349cac (diff)
bugfix #4526
Depsgraph fix: the signal DAG_object_flush_update() should flush changes in 'data' to all object users of that data, not only in current scene. Error was that switching scenes sometimes showed invalid derivedmesh data, with bezerk drawing.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index c3443e524dc..8de599d452c 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -1811,7 +1811,6 @@ static unsigned int dag_screen_view3d_layers(void)
use DAG_scene_flush_update() in end */
void DAG_object_flush_update(Scene *sce, Object *ob, short flag)
{
- Base *base;
if(ob==NULL || sce->theDag==NULL) return;
ob->recalc |= flag;
@@ -1825,9 +1824,10 @@ void DAG_object_flush_update(Scene *sce, Object *ob, short flag)
/* except when there's a key and shapes are locked */
if(ob_get_key(ob) && (ob->shapeflag & (OB_SHAPE_LOCK|OB_SHAPE_TEMPLOCK)));
else {
- for (base= sce->base.first; base; base= base->next) {
- if (ob->data==base->object->data) {
- base->object->recalc |= OB_RECALC_DATA;
+ Object *obt;
+ for (obt=G.main->object.first; obt; obt= obt->id.next) {
+ if (obt->data==ob->data) {
+ obt->recalc |= OB_RECALC_DATA;
}
}
}