[Bf-blender-cvs] [c2e7bf39535] blender-v3.4-release: GPencil: Fix unreported interpolate crash in empty layers
Antonio Vazquez
noreply at git.blender.org
Thu Dec 15 11:38:57 CET 2022
Commit: c2e7bf395352d5745426de6c09945abb3a2e1a78
Author: Antonio Vazquez
Date: Thu Dec 15 11:38:49 2022 +0100
Branches: blender-v3.4-release
https://developer.blender.org/rBc2e7bf395352d5745426de6c09945abb3a2e1a78
GPencil: Fix unreported interpolate crash in empty layers
If there is a layer that hasn't frames but is not the active layer
the pointer to frames can be NULL and crash.
Now, the empty layers are skipped.
Reported to me by Samuel Bernou.
===================================================================
M source/blender/editors/gpencil/gpencil_interpolate.c
===================================================================
diff --git a/source/blender/editors/gpencil/gpencil_interpolate.c b/source/blender/editors/gpencil/gpencil_interpolate.c
index cc25ed66b3d..9a5a3d5faea 100644
--- a/source/blender/editors/gpencil/gpencil_interpolate.c
+++ b/source/blender/editors/gpencil/gpencil_interpolate.c
@@ -479,15 +479,20 @@ static void gpencil_interpolate_set_points(bContext *C, tGPDinterpolate *tgpi)
continue;
}
- /* create temp data for each layer */
- tgpil = MEM_callocN(sizeof(tGPDinterpolate_layer), "GPencil Interpolate Layer");
+ bGPDframe *gpf_prv = gpencil_get_previous_keyframe(gpl, scene->r.cfra);
+ if (gpf_prv == NULL) {
+ continue;
+ }
+ bGPDframe *gpf_next = gpencil_get_next_keyframe(gpl, scene->r.cfra);
+ if (gpf_next == NULL) {
+ continue;
+ }
+ /* Create temp data for each layer. */
+ tgpil = MEM_callocN(sizeof(tGPDinterpolate_layer), "GPencil Interpolate Layer");
tgpil->gpl = gpl;
- bGPDframe *gpf = gpencil_get_previous_keyframe(gpl, scene->r.cfra);
- tgpil->prevFrame = BKE_gpencil_frame_duplicate(gpf, true);
-
- gpf = gpencil_get_next_keyframe(gpl, scene->r.cfra);
- tgpil->nextFrame = BKE_gpencil_frame_duplicate(gpf, true);
+ tgpil->prevFrame = BKE_gpencil_frame_duplicate(gpf_prv, true);
+ tgpil->nextFrame = BKE_gpencil_frame_duplicate(gpf_next, true);
BLI_addtail(&tgpi->ilayers, tgpil);
More information about the Bf-blender-cvs
mailing list