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/intern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-09-13 18:12:19 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-09-14 15:03:40 +0300
commit7aafa32c09bb93b44f746743b67735b1ae73ab21 (patch)
treeab48f8aedafff6e6887d0141034c9cf8a32dedc4 /intern
parentff7940640433d65ef3fc9e4662ffc8a171b4a07b (diff)
Fix T51416: Blender Crashes while moving Sliders
The issue here was that removing datablock from main database will poke editors update, which includes buttons context to free users of texture. Since Cycles will free datablocks from job thread, it might crash Blender since main thread might be in the middle of drawing. Solved by exposing extra arguments to bpy.data.foo.remove() which indicates whether we want to perform ID user count and interface updates. While scripts shouldn't be using those normally, this is the only way to allow Cycles to skip interface update when removing datablock. Reviewers: mont29 Reviewed By: mont29 Differential Revision: https://developer.blender.org/D2840
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/blender_mesh.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index 430e1066303..ba95fd84e86 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -1080,7 +1080,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob,
}
/* free derived mesh */
- b_data.meshes.remove(b_mesh, false);
+ b_data.meshes.remove(b_mesh, false, true, false);
}
}
mesh->geometry_flags = requested_geometry_flags;
@@ -1300,7 +1300,7 @@ void BlenderSync::sync_mesh_motion(BL::Object& b_ob,
sync_curves(mesh, b_mesh, b_ob, true, time_index);
/* free derived mesh */
- b_data.meshes.remove(b_mesh, false);
+ b_data.meshes.remove(b_mesh, false, true, false);
}
CCL_NAMESPACE_END