Fix T48088: Reproducible crash: Edges + Array Mod + Hair Particles.

Code did not consider the possibility to have no face at all! :P
This commit is contained in:
Bastien Montagne 2016-04-08 16:26:42 +02:00
parent a5dcda8ad3
commit c1d1c1dc6b
Notes: blender-bot 2023-02-14 11:35:46 +01:00
Referenced by issue #48088, Reproducible crash: Edges + Array Mod + Hair Particles
1 changed files with 7 additions and 6 deletions

View File

@ -1422,7 +1422,6 @@ int psys_particle_dm_face_lookup(
{
MFace *mtessface_final;
OrigSpaceFace *osface_final;
int totface_final;
int pindex_orig;
float uv[2], (*faceuv)[2];
@ -1430,6 +1429,13 @@ int psys_particle_dm_face_lookup(
const int *index_mf_to_mpoly = NULL;
const int *index_mp_to_orig = NULL;
const int totface_final = dm_final->getNumTessFaces(dm_final);
const int totface_deformed = dm_deformed ? dm_deformed->getNumTessFaces(dm_deformed) : totface_final;
if (ELEM(0, totface_final, totface_deformed)) {
return DMCACHE_NOTFOUND;
}
index_mf_to_mpoly = dm_final->getTessFaceDataArray(dm_final, CD_ORIGINDEX);
index_mp_to_orig = dm_final->getPolyDataArray(dm_final, CD_ORIGINDEX);
BLI_assert(index_mf_to_mpoly);
@ -1451,11 +1457,6 @@ int psys_particle_dm_face_lookup(
index_mf_to_mpoly_deformed = NULL;
totface_final = dm_final->getNumTessFaces(dm_final);
if (!totface_final) {
return DMCACHE_NOTFOUND;
}
mtessface_final = dm_final->getTessFaceArray(dm_final);
osface_final = dm_final->getTessFaceDataArray(dm_final, CD_ORIGSPACE);