Fix (unreported) Ocean modifier assuming all its faces are quads.

Would be true in most cases (and in particular with own generated geometry),
but in case one would be using original geometry this could have crashed badly.
This commit is contained in:
Bastien Montagne
2015-12-06 21:06:11 +01:00
parent a78199332b
commit 8d09eecc50

View File

@@ -479,9 +479,10 @@ static DerivedMesh *doOcean(ModifierData *md, Object *ob,
if (omd->flag & MOD_OCEAN_GENERATE_FOAM) {
if (CustomData_number_of_layers(&dm->loopData, CD_MLOOPCOL) < MAX_MCOL) {
const int num_polys = dm->getNumPolys(dm);
const int num_loops = dm->getNumLoops(dm);
MLoop *mloops = dm->getLoopArray(dm);
MLoopCol *mloopcols = CustomData_add_layer_named(
&dm->loopData, CD_MLOOPCOL, CD_CALLOC, NULL, num_polys * 4, omd->foamlayername);
&dm->loopData, CD_MLOOPCOL, CD_CALLOC, NULL, num_loops, omd->foamlayername);
if (mloopcols) { /* unlikely to fail */
MPoly *mpolys = dm->getPolyArray(dm);