GNOME Bugzilla – Bug 150194
GIMP crashes when plug-in is closed after the image it was started from
Last modified: 2004-12-22 21:47:04 UTC
This seems to be a new crash, apparently related to the new progress bar API in GIMP 2.x. If you start a plug-in on some image, then close the image while the plug-in dialog is still open, then the GIMP will crash as soon as the plug-in exits. Try this for example with the gaussian blur plug-in and pretend that you close the image by accident and then cancel the plug-in. This results in an immediate crash: gimp: fatal error: Segmentation fault gimp (pid:26133): [E]xit, [H]alt, show [S]tack trace or [P]roceed: s
+ Trace 49347
Let's hope I got this right and didn't introduce more subtle bugs... 2004-08-17 Sven Neumann <sven@gimp.org> * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.c * app/plug-in/plug-in.c: don't keep a strong reference to the GimpProgress object, instead use a weak reference and deal with the progress being destroyed while the plug-in is running. Fixes bug #150194.
I tested it with various combinations of plug-ins; including some tests of slow progress bars during which I closed the image. Everything seemed to work fine. Thanks!
Reopening :( Will check in a different fix later... 2004-08-30 Michael Natterer <mitch@gimp.org> Brought the PDB progress into a working state. Fixes bug #6010, addressed bugs #97266 and #135185 and unfortunately reopens bug #150194 (will fix that later). * libgimpbase/gimpbaseenums.h: added enum GimpProgressCommand. * app/core/gimppdbprogress.c * libgimp/gimpprogress.c: use the enum instead of integer constants for the different progress commands. Cleanup. * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.c * app/plug-in/plug-in.c: switch bach to real refcouting for plug_in->progress (reopens bug #150194) and enabled the PDB progress code. * plug-ins/script-fu/script-fu-scripts.c: cleaned up the progress stuff and the script-fu interface a bit. * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated.
Fixed in CVS: 2004-09-01 Michael Natterer <mitch@gimp.org> * app/display/gimpdisplay.c * app/widgets/gimpprogressdialog.c: gracefully handle progress calls after the widget is destroyed. Re-fixes bug #150194.