[gimp] app: fix #7682 crash loading xcf with linked text layers
- From: Jacob Boerema <jboerema src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: fix #7682 crash loading xcf with linked text layers
- Date: Thu, 6 Jan 2022 20:08:35 +0000 (UTC)
commit 1858d72d032a0bd4ccb26b62f3e8c8310b9f61f6
Author: Jacob Boerema <jgboerema gmail com>
Date: Thu Jan 6 15:03:51 2022 -0500
app: fix #7682 crash loading xcf with linked text layers
Due to recent changes on master the linked layers concept doesn't exist
anymore. The conversion code checks whether all linked layers are valid.
However, text layers need special handling.
In the past updating the linked_layers wasn't needed when the layer pointer
of a text layer was changed. Now, that has changed because we parse that
list for valid layers. To fix this we update linked_layers in the same
way as already was done for selected_layers.
app/xcf/xcf-load.c | 7 +++++++
1 file changed, 7 insertions(+)
---
diff --git a/app/xcf/xcf-load.c b/app/xcf/xcf-load.c
index 53d625d594..2a30ba9222 100644
--- a/app/xcf/xcf-load.c
+++ b/app/xcf/xcf-load.c
@@ -2082,6 +2082,7 @@ xcf_load_layer (XcfInfo *info,
gboolean edit_mask = FALSE;
gboolean show_mask = FALSE;
GList *selected;
+ GList *linked;
gboolean floating;
guint32 group_layer_flags = 0;
guint32 text_layer_flags = 0;
@@ -2205,6 +2206,7 @@ xcf_load_layer (XcfInfo *info,
/* call the evil text layer hack that might change our layer pointer */
selected = g_list_find (info->selected_layers, layer);
+ linked = g_list_find (info->linked_layers, layer);
floating = (info->floating_sel == layer);
if (gimp_text_layer_xcf_load_hack (&layer))
@@ -2217,6 +2219,11 @@ xcf_load_layer (XcfInfo *info,
info->selected_layers = g_list_delete_link (info->selected_layers, selected);
info->selected_layers = g_list_prepend (info->selected_layers, layer);
}
+ if (linked)
+ {
+ info->linked_layers = g_list_delete_link (info->linked_layers, linked);
+ info->linked_layers = g_list_prepend (info->linked_layers, layer);
+ }
if (floating)
info->floating_sel = layer;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]