David Odin
Mon, 20 Nov 2000 17:35:50 -0800
Hi,
I've found a sure way to make Gimp segfault (today's CVS):
start Gimp
File->Dialog->Display filter
Add a filter
select it on the right list
Click on Remove
Click on Remove again->Segfault.
A little bit of GDB shows that this patch solve this:
---------------------------------------------------------
--- gimp/app/gdisplay_color.c.orig Tue Nov 21 02:19:41 2000
+++ gimp/app/gdisplay_color.c Tue Nov 21 02:19:59 2000
@@ -231,6 +231,7 @@
ColorDisplayNode *node)
{
g_return_if_fail (gdisp != NULL);
+ g_return_if_fail (node != NULL);
gdisplay_color_detach_real (gdisp, node, TRUE);
gdisp->cd_list = g_list_remove (gdisp->cd_list, node);
--------------------------------------------------------
However, even if this patch works (and it does work, I've tested it),
it only hide the problem. I guess a more appropriate patch would be to
update cdd->dest_row to -1 after the removing of a filter as the
following patch shows:
--------------------------------------------------------
--- gimp/app/gdisplay_color_ui.c.orig Tue Nov 21 02:33:16 2000
+++ gimp/app/gdisplay_color_ui.c Tue Nov 21 02:34:09 2000
@@ -310,6 +310,7 @@
else
gdisplay_color_detach_destroy (gdisp, node);
+ cdd->dest_row = -1;
UPDATE_DISPLAY (gdisp);
}
--------------------------------------------------------
I really think these two patches should be applied before 1.2.
In the best of world, the Remove, Up, Down and Configure buttons
should be grayed out when there're not supposed to have an action (i.e.
when no filter is selected in the right list).
Best regards,
DindinX
--
[EMAIL PROTECTED]