[Bf-blender-cvs] [71ffddfa0f0] fracture_modifier: fixed some crashers

Martin Felke noreply at git.blender.org
Thu Jan 4 02:38:27 CET 2018


Commit: 71ffddfa0f0d72144997a5974d189b3ad8e722eb
Author: Martin Felke
Date:   Thu Jan 4 02:38:18 2018 +0100
Branches: fracture_modifier
https://developer.blender.org/rB71ffddfa0f0d72144997a5974d189b3ad8e722eb

fixed some crashers

===================================================================

M	intern/cycles/blender/blender_mesh.cpp
M	source/blender/modifiers/intern/MOD_remesh.c

===================================================================

diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index dbacaea4cbd..5b7fd3fafbf 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -946,16 +946,6 @@ static bool sync_mesh_precalculated_motion(BL::Mesh& b_mesh, Scene *scene, Mesh
 	if(scene->need_motion() == Scene::MOTION_NONE)
 		return false;
 
-	/*mesh->subdivision_type = object_subdivision_type(b_ob, preview, experimental);
-
-	BL::Mesh b_mesh = object_to_mesh(b_data,
-	                                 b_ob,
-	                                 b_scene,
-	                                 true,
-	                                 false,
-	                                 !preview,
-	                                 mesh->subdivision_type);*/
-
 	/* Find or add attribute */
 	float3 *P = &mesh->verts[0];
 	Attribute *attr_mP = mesh->attributes.find(ATTR_STD_MOTION_VERTEX_POSITION);
@@ -975,7 +965,11 @@ static bool sync_mesh_precalculated_motion(BL::Mesh& b_mesh, Scene *scene, Mesh
 		BL::MeshVertexFloatPropertyLayer vlY = b_mesh.vertex_layers_float[std::string("velY")];
 		BL::MeshVertexFloatPropertyLayer vlZ = b_mesh.vertex_layers_float[std::string("velZ")];
 
-		if (vlX.data.length() == 0 || vlY.data.length() == 0 || vlZ.data.length() == 0)
+		BL::Pointer ptrX = (BL::Pointer)vlX;
+		BL::Pointer ptrY = (BL::Pointer)vlY;
+		BL::Pointer ptrZ = (BL::Pointer)vlZ;
+
+		if (!ptrX || !ptrY || !ptrZ || vlX.data.length() != mesh->verts.size())
 		{
 			return false;
 		}
@@ -991,9 +985,6 @@ static bool sync_mesh_precalculated_motion(BL::Mesh& b_mesh, Scene *scene, Mesh
 		}
 	}
 
-	/* free derived mesh */
-	//b_data.meshes.remove(b_mesh, false);
-
 	return true;
 }
 
diff --git a/source/blender/modifiers/intern/MOD_remesh.c b/source/blender/modifiers/intern/MOD_remesh.c
index 83d072e0e24..e6aeaf75f6e 100644
--- a/source/blender/modifiers/intern/MOD_remesh.c
+++ b/source/blender/modifiers/intern/MOD_remesh.c
@@ -293,6 +293,9 @@ static DerivedMesh *repolygonize(RemeshModifierData *rmd, Object* ob, DerivedMes
 
 		dm = CDDM_new(n + derived->numVertData, 0, 0, 0, 0);
 		psize = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, CD_CALLOC, NULL, n + derived->numVertData, "psize");
+		velX = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, CD_CALLOC, NULL, n + derived->numVertData, "velX");
+		velY = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, CD_CALLOC, NULL, n + derived->numVertData, "velY");
+		velZ = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, CD_CALLOC, NULL, n + derived->numVertData, "velZ");
 
 		mv = dm->getVertArray(dm);
 		mv2 = derived->getVertArray(derived);



More information about the Bf-blender-cvs mailing list