Bug in color display filter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




      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



-- 
David.Odin@xxxxxxxxxxx



[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux