From b9577a783d2d43fbe2eb65523f1199ccc1a66972 Mon Sep 17 00:00:00 2001 From: Jehan Date: Sun, 21 Jan 2018 19:49:19 +0100 Subject: [PATCH] Bug 792744 - Gimp crashes attempting to merge down a hidden layer. Don't use g_assert(). Instead use g_return_val_if_fail(). This commit therefore does not fix the actual bug, but at least it does not crash. GIMP simply outputs a warning upon trying to merge down a hidden layer. The actual fix will follow later. --- app/core/gimpimage-merge.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/core/gimpimage-merge.c b/app/core/gimpimage-merge.c index 54c72e703a..8169358c37 100644 --- a/app/core/gimpimage-merge.c +++ b/app/core/gimpimage-merge.c @@ -449,7 +449,14 @@ gimp_image_merge_layers (GimpImage *image, g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL); - parent = gimp_layer_get_parent (merge_list->data); + top_layer = merge_list->data; + parent = gimp_layer_get_parent (top_layer); + + /* Build our graph inside the top-layer's parent node */ + source_node = gimp_filter_get_node (GIMP_FILTER (top_layer)); + node = gegl_node_get_parent (source_node); + + g_return_val_if_fail (node, NULL); /* Get the layer extents */ x1 = y1 = 0; @@ -519,7 +526,6 @@ gimp_image_merge_layers (GimpImage *image, if ((x2 - x1) == 0 || (y2 - y1) == 0) return NULL; - top_layer = merge_list->data; bottom_layer = layer; flatten_node = NULL; @@ -589,12 +595,6 @@ gimp_image_merge_layers (GimpImage *image, */ (void) gimp_projectable_get_graph (GIMP_PROJECTABLE (image)); - /* Build our graph inside the top-layer's parent node */ - source_node = gimp_filter_get_node (GIMP_FILTER (top_layer)); - - node = gegl_node_get_parent (source_node); - g_assert (node != NULL); - offset_node = gegl_node_new_child (node, "operation", "gegl:translate", "x", (gdouble) -x1,