[Bf-blender-cvs] [e041ca68e1a] fracture_modifier: fix for packing materials, material index start value could overflow due to being a short instead of int

Martin Felke noreply at git.blender.org
Wed Jun 7 18:08:52 CEST 2017


Commit: e041ca68e1a701e2022ee7c6e7970f819f48428d
Author: Martin Felke
Date:   Wed Jun 7 18:08:43 2017 +0200
Branches: fracture_modifier
https://developer.blender.org/rBe041ca68e1a701e2022ee7c6e7970f819f48428d

fix for packing materials, material index start value could overflow due to being a short instead of int

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

M	source/blender/blenkernel/BKE_fracture.h
M	source/blender/blenkernel/intern/fracture.c
M	source/blender/modifiers/intern/MOD_fracture.c

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

diff --git a/source/blender/blenkernel/BKE_fracture.h b/source/blender/blenkernel/BKE_fracture.h
index 328e4c49a74..95722f2305d 100644
--- a/source/blender/blenkernel/BKE_fracture.h
+++ b/source/blender/blenkernel/BKE_fracture.h
@@ -120,7 +120,7 @@ void BKE_fracture_mesh_constraint_remove_all(struct FractureModifierData *fmd);
 
 void BKE_fracture_free_mesh_island(struct FractureModifierData *rmd, struct MeshIsland *mi, bool remove_rigidbody);
 int BKE_fracture_update_visual_mesh(struct FractureModifierData *fmd, struct Object *ob, bool do_custom_data);
-short BKE_fracture_collect_materials(struct Object* o, struct Object* ob, short matstart, struct GHash** mat_index_map);
+short BKE_fracture_collect_materials(struct Object* o, struct Object* ob, int matstart, struct GHash** mat_index_map);
 
 void BKE_bm_mesh_hflag_flush_vert(struct BMesh *bm, const char hflag);
 void BKE_meshisland_constraint_create(struct FractureModifierData* fmd, struct MeshIsland *mi1, struct MeshIsland *mi2, int con_type, float thresh);
diff --git a/source/blender/blenkernel/intern/fracture.c b/source/blender/blenkernel/intern/fracture.c
index d1d9b73a8e9..cb986fcceb5 100644
--- a/source/blender/blenkernel/intern/fracture.c
+++ b/source/blender/blenkernel/intern/fracture.c
@@ -2901,7 +2901,7 @@ short fracture_collect_defgrp(Object* o, Object* ob, short defstart, GHash** def
 	return k;
 }
 
-short BKE_fracture_collect_materials(Object* o, Object* ob, short matstart, GHash** mat_index_map)
+short BKE_fracture_collect_materials(Object* o, Object* ob, int matstart, GHash** mat_index_map)
 {
 	short *totcolp = NULL;
 	Material ***matarar = NULL;
@@ -2976,7 +2976,7 @@ MeshIsland* BKE_fracture_mesh_island_add(FractureModifierData *fmd, Object* own,
 		fmd->matstart = 1;
 	}
 
-	totcol = BKE_fracture_collect_materials(target, own, (short)fmd->matstart, &fmd->material_index_map);
+	totcol = BKE_fracture_collect_materials(target, own, fmd->matstart, &fmd->material_index_map);
 	if (totcol < 0)
 	    totcol = 0;
 	fmd->matstart += totcol;
diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c
index 84fd018ef93..58843b469e1 100644
--- a/source/blender/modifiers/intern/MOD_fracture.c
+++ b/source/blender/modifiers/intern/MOD_fracture.c
@@ -829,7 +829,7 @@ static void adjustVerts(MVert **mvert, FractureModifierData *fmd, Object *o, Der
 static void collect_derivedmeshes(FractureModifierData* fmd, Object *ob, MVert** mvert, MLoop** mloop, MPoly **mpoly, DerivedMesh* result, GHash** mat_index_map)
 {
 	int vertstart = 0, polystart = 0, loopstart = 0;
-	short matstart = 1;
+	int matstart = 1;
 	MVert *mverts = *mvert;
 	MLoop *mloops = *mloop;
 	MPoly *mpolys = *mpoly;




More information about the Bf-blender-cvs mailing list