[Bf-blender-cvs] [b6508da] blender-v2.78-release: Code Cleanup: Deduplicate undo node freeing code

Joshua Leung noreply at git.blender.org
Wed Sep 14 13:26:45 CEST 2016


Commit: b6508da38043622e840a7bbb174d8bfeb3ee84d4
Author: Joshua Leung
Date:   Wed Sep 7 23:53:13 2016 +1200
Branches: blender-v2.78-release
https://developer.blender.org/rBb6508da38043622e840a7bbb174d8bfeb3ee84d4

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 d346633..7a9ad2b 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;
@@ -188,14 +192,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