[Bf-blender-cvs] [a5cf2f2] compositor-2016: Fix T48415: Segfault on opening .blend in which a 'surface' force object was saved in Edit mode.
Bastien Montagne
noreply at git.blender.org
Wed Jun 8 21:52:13 CEST 2016
Commit: a5cf2f26c2fd91bdf5516d8675fc65cc422b6603
Author: Bastien Montagne
Date: Wed Jun 1 15:26:58 2016 +0200
Branches: compositor-2016
https://developer.blender.org/rBa5cf2f26c2fd91bdf5516d8675fc65cc422b6603
Fix T48415: Segfault on opening .blend in which a 'surface' force object was saved in Edit mode.
In that case, surface modifier won't run (until surface object goes back to Object mode),
and its bvhtree remains NULL.
===================================================================
M source/blender/blenkernel/intern/effect.c
===================================================================
diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c
index 6284b3a..f06dd6f 100644
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@ -566,7 +566,9 @@ int get_effector_data(EffectorCache *eff, EffectorData *efd, EffectedPoint *poin
float cfra = eff->scene->r.cfra;
int ret = 0;
- if (eff->pd && eff->pd->shape==PFIELD_SHAPE_SURFACE && eff->surmd) {
+ /* In case surface object is in Edit mode when loading the .blend, surface modifier is never executed
+ * and bvhtree never built, see T48415. */
+ if (eff->pd && eff->pd->shape==PFIELD_SHAPE_SURFACE && eff->surmd && eff->surmd->bvhtree) {
/* closest point in the object surface is an effector */
float vec[3];
More information about the Bf-blender-cvs
mailing list