[Bf-blender-cvs] [828a3d89b39] blender2.8: Fix T55015: Crash on selection after recent BVH changes
Dalai Felinto
noreply at git.blender.org
Wed May 9 15:53:23 CEST 2018
Commit: 828a3d89b39b49a265a4ba7875dcb3edfe9c477f
Author: Dalai Felinto
Date: Wed May 9 15:38:58 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB828a3d89b39b49a265a4ba7875dcb3edfe9c477f
Fix T55015: Crash on selection after recent BVH changes
Runtime data should always be initialized to NULL on read-time.
===================================================================
M source/blender/blenkernel/BKE_mesh.h
M source/blender/blenkernel/intern/mesh_runtime.c
M source/blender/blenloader/intern/readfile.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index a170a2a32eb..53300e92e67 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -192,7 +192,7 @@ void BKE_mesh_mselect_active_set(struct Mesh *me, int index, int type);
void BKE_mesh_apply_vert_coords(struct Mesh *mesh, float (*vertCoords)[3]);
/* *** mesh_runtime.c *** */
-
+void BKE_mesh_runtime_reset(struct Mesh *mesh);
int BKE_mesh_runtime_looptri_len(const struct Mesh *mesh);
void BKE_mesh_runtime_looptri_recalc(struct Mesh *mesh);
const struct MLoopTri *BKE_mesh_runtime_looptri_ensure(struct Mesh *mesh);
diff --git a/source/blender/blenkernel/intern/mesh_runtime.c b/source/blender/blenkernel/intern/mesh_runtime.c
index aebf03151d1..96d31fa9a42 100644
--- a/source/blender/blenkernel/intern/mesh_runtime.c
+++ b/source/blender/blenkernel/intern/mesh_runtime.c
@@ -44,6 +44,13 @@
static ThreadRWMutex loops_cache_lock = PTHREAD_RWLOCK_INITIALIZER;
+/**
+ * Default values defined at read time.
+ */
+void BKE_mesh_runtime_reset(Mesh *mesh)
+{
+ memset(&mesh->runtime, 0, sizeof(mesh->runtime));
+}
/* This is a ported copy of DM_ensure_looptri_data(dm) */
/**
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index e65d4e17539..56f18072843 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -4685,8 +4685,8 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
mesh->bb = NULL;
mesh->edit_btmesh = NULL;
- mesh->runtime.batch_cache = NULL;
-
+ BKE_mesh_runtime_reset(mesh);
+
/* happens with old files */
if (mesh->mselect == NULL) {
mesh->totselect = 0;
More information about the Bf-blender-cvs
mailing list