[Bf-blender-cvs] [09f2aa9] master: Fix T44412: Crash when trying to paint on a GPencil frame when the frames are out of order

Joshua Leung noreply at git.blender.org
Fri Apr 17 03:57:49 CEST 2015


Commit: 09f2aa938248bedebf7e801fabd833055627fe46
Author: Joshua Leung
Date:   Fri Apr 17 13:32:57 2015 +1200
Branches: master
https://developer.blender.org/rB09f2aa938248bedebf7e801fabd833055627fe46

Fix T44412: Crash when trying to paint on a GPencil frame when the frames are out of order

===================================================================

M	source/blender/blenkernel/intern/gpencil.c

===================================================================

diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index ba4077e..38a8429 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -129,7 +129,7 @@ void BKE_gpencil_free(bGPdata *gpd)
 /* add a new gp-frame to the given layer */
 bGPDframe *gpencil_frame_addnew(bGPDlayer *gpl, int cframe)
 {
-	bGPDframe *gpf, *gf;
+	bGPDframe *gpf = NULL, *gf = NULL;
 	short state = 0;
 	
 	/* error checking (neg frame only if they are not allowed in Blender!) */
@@ -160,8 +160,14 @@ bGPDframe *gpencil_frame_addnew(bGPDlayer *gpl, int cframe)
 	
 	/* check whether frame was added successfully */
 	if (state == -1) {
+		printf("Error: Frame (%d) existed already for this layer. Using existing frame\n", cframe);
+		
+		/* free the newly created one, and use the old one instead */
 		MEM_freeN(gpf);
-		printf("Error: frame (%d) existed already for this layer\n", cframe);
+		
+		/* return existing frame instead... */
+		BLI_assert(gf != NULL);
+		gpf = gf;
 	}
 	else if (state == 0) {
 		/* add to end then! */




More information about the Bf-blender-cvs mailing list