[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