diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2019-09-26 18:24:29 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2019-09-26 18:27:43 +0300 |
commit | cf2c09002fae1e5b11acc0f21b67ffb29212ad7a (patch) | |
tree | 5b8b93171e8c9b838a504563888cc48bc91024e3 /source/blender/editors/transform/transform_convert.c | |
parent | 6a33e3b990f39f20ae075fecf29aaa968932c989 (diff) |
Fix T69488: Hair particles: rekey disolves the hair then crashes
Caused by rB914427afd512.
Since above commit 'pe_get_current' checks for an active depsgraph. This
caused the skipping of handling
`PT_CACHE_EDIT_UPDATE_PARTICLE_FROM_EVAL`for everything calling
`PE_get_current` (this passes a NULL depsgraph as opposed to
`PE_create_current`). So we now pass a depsgraph here as well...
Note there are two RNA cases where we pass NULL, namely
- rna_ParticleEdit_editable_get
- rna_ParticleEdit_hair_get
I guess these should be fine though (no functional change to current
master)
Reviewers: sergey
Maniphest Tasks: T69488
Differential Revision: https://developer.blender.org/D5752
Diffstat (limited to 'source/blender/editors/transform/transform_convert.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c index 81b7c7f8c9e..5862faaf667 100644 --- a/source/blender/editors/transform/transform_convert.c +++ b/source/blender/editors/transform/transform_convert.c @@ -2251,7 +2251,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) /* pass */ } else if ((t->view_layer->basact) && (ob = t->view_layer->basact->object) && - (ob->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(t->scene, ob)) { + (ob->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(t->depsgraph, t->scene, ob)) { /* do nothing */ } else if (t->flag & T_CURSOR) { @@ -2668,7 +2668,8 @@ void createTransData(bContext *C, TransInfo *t) } } } - else if (ob && (ob->mode & OB_MODE_PARTICLE_EDIT) && PE_start_edit(PE_get_current(scene, ob))) { + else if (ob && (ob->mode & OB_MODE_PARTICLE_EDIT) && + PE_start_edit(PE_get_current(t->depsgraph, scene, ob))) { createTransParticleVerts(C, t); countAndCleanTransDataContainer(t); t->flag |= T_POINTS; |