[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