[Bf-blender-cvs] [5b42e07] master: Code Cleanup: Deduplicate undo node freeing code

Joshua Leung noreply at git.blender.org
Wed Sep 7 15:16:38 CEST 2016


Commit: 5b42e07e18c9f933d5e6d267f322822cc159183d
Author: Joshua Leung
Date:   Wed Sep 7 23:53:13 2016 +1200
Branches: master
https://developer.blender.org/rB5b42e07e18c9f933d5e6d267f322822cc159183d

Code Cleanup: Deduplicate undo node freeing code

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

M	source/blender/editors/gpencil/gpencil_undo.c

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

diff --git a/source/blender/editors/gpencil/gpencil_undo.c b/source/blender/editors/gpencil/gpencil_undo.c
index 793ed2a..196aec8 100644
--- a/source/blender/editors/gpencil/gpencil_undo.c
+++ b/source/blender/editors/gpencil/gpencil_undo.c
@@ -124,6 +124,17 @@ void gpencil_undo_init(bGPdata *gpd)
 	gpencil_undo_push(gpd);
 }
 
+static void gpencil_undo_free_node(bGPundonode *undo_node)
+{
+	/* HACK: animdata wasn't duplicated, so it shouldn't be freed here,
+	 * or else the real copy will segfault when accessed
+	 */
+	undo_node->gpd->adt = NULL;
+	
+	BKE_gpencil_free(undo_node->gpd, false);
+	MEM_freeN(undo_node->gpd);
+}
+
 void gpencil_undo_push(bGPdata *gpd)
 {
 	bGPundonode *undo_node;
@@ -137,14 +148,7 @@ void gpencil_undo_push(bGPdata *gpd)
 		while (undo_node) {
 			bGPundonode *next_node = undo_node->next;
 			
-			/* HACK: animdata wasn't duplicated, so it shouldn't be freed here,
-			 * or else the real copy will segfault when accessed
-			 */
-			undo_node->gpd->adt = NULL;
-			
-			BKE_gpencil_free(undo_node->gpd, false);
-			MEM_freeN(undo_node->gpd);
-			
+			gpencil_undo_free_node(undo_node);
 			BLI_freelinkN(&undo_nodes, undo_node);
 			
 			undo_node = next_node;
@@ -165,14 +169,7 @@ void gpencil_undo_finish(void)
 	bGPundonode *undo_node = undo_nodes.first;
 	
 	while (undo_node) {
-		/* HACK: animdata wasn't duplicated, so it shouldn't be freed here,
-		 * or else the real copy will segfault when accessed
-		 */
-		undo_node->gpd->adt = NULL;
-		
-		BKE_gpencil_free(undo_node->gpd, false);
-		MEM_freeN(undo_node->gpd);
-		
+		gpencil_undo_free_node(undo_node);
 		undo_node = undo_node->next;
 	}




More information about the Bf-blender-cvs mailing list