From e175259f44c8aab022ff4d9b1e93fab208eca629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20T=C3=B6nne?= Date: Tue, 11 Jun 2024 15:39:52 +0200 Subject: [PATCH] Fix #73168: Stop particle draw code from crashing Not a real fix, just preventing crashes due to broken particle data. Particle draw code can get into an invalid state, which can crash drawing code. This just prevents the crash. Pull Request: https://projects.blender.org/blender/blender/pulls/123075 --- source/blender/draw/intern/draw_cache_impl_particles.cc | 3 --- source/blender/makesrna/intern/rna_sculpt_paint.cc | 6 ++++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/source/blender/draw/intern/draw_cache_impl_particles.cc b/source/blender/draw/intern/draw_cache_impl_particles.cc index 0b8e555a7ee..44d1bb4cb06 100644 --- a/source/blender/draw/intern/draw_cache_impl_particles.cc +++ b/source/blender/draw/intern/draw_cache_impl_particles.cc @@ -1571,9 +1571,6 @@ static void particle_batch_cache_ensure_edit_pos_and_seg(PTCacheEdit *edit, particle_batch_cache_fill_segments_edit( edit, particle, edit->pathcache, 0, edit->totcached, &elb, &data_step); } - else { - BLI_assert_msg(0, "Hairs are not in edit mode!"); - } hair_cache->indices = GPU_indexbuf_build(&elb); } diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.cc b/source/blender/makesrna/intern/rna_sculpt_paint.cc index c373bb62e22..e80e1d4a0bc 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.cc +++ b/source/blender/makesrna/intern/rna_sculpt_paint.cc @@ -179,8 +179,10 @@ static void rna_ParticleEdit_redo(bContext *C, PointerRNA * /*ptr*/) DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY); } - BKE_particle_batch_cache_dirty_tag(edit->psys, BKE_PARTICLE_BATCH_DIRTY_ALL); - psys_free_path_cache(edit->psys, edit); + if (edit->psys) { + BKE_particle_batch_cache_dirty_tag(edit->psys, BKE_PARTICLE_BATCH_DIRTY_ALL); + psys_free_path_cache(edit->psys, edit); + } DEG_id_tag_update(&scene->id, ID_RECALC_SYNC_TO_EVAL); }