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 @@
     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,



Reply via email to