1
1
mirror of https://gitlab.gnome.org/GNOME/gimp.git synced 2025-10-06 01:12:40 +02:00

Compare commits

...

3 Commits

Author SHA1 Message Date
Jacob Boerema
3b4c8e89f0 Merge branch 'wip/wormnest/clipboard-crash' into 'master'
app: fix #13555 crash in clipboard when closing

Closes #13555

See merge request GNOME/gimp!2428
2025-10-03 08:59:57 -04:00
Bruno Lopes
2b91551f4e gitlab-ci: Complete cbe56ff3 2025-10-03 09:03:26 -03:00
Jacob Boerema
6451ce3c80 app: fix #13555 crash in clipboard when closing
Apparently the gimpclipboard_send_* functions can be called when
gimp_clip has already been cleared, usually at shutdown. This is
causing crashes sometimes that I have not been able to reproduce.

Fixing this at the source would be best, but I have not been able to
figure out where that would be. So, next best thing is adding a check
to bail out early when gimp_clip is NULL.
2025-10-02 12:08:55 -04:00
2 changed files with 19 additions and 7 deletions

View File

@@ -581,14 +581,14 @@ gimp-win:
- build\windows\2_build-gimp-msys2.ps1
artifacts:
paths:
- gimp-$MSYSTEM_PREFIX/
- _build-$MSYSTEM_PREFIX/meson-logs/meson-log.txt
- _build-$MSYSTEM_PREFIX/done-dll.list
- gimp-*/
- _build-*/meson-logs/meson-log.txt
- _build-*/done-dll.list
# Needed by dist-installer-weekly and dist-store-weekly
- _build-$MSYSTEM_PREFIX/config.h
- _build-$MSYSTEM_PREFIX/plug-ins/file_associations.list
- _build-$MSYSTEM_PREFIX/build/windows/installer/
- _build-$MSYSTEM_PREFIX/build/windows/store/
- _build-*/config.h
- _build-*/plug-ins/file_associations.list
- _build-*/build/windows/installer/
- _build-*/build/windows/store/
expire_in: 2 days

View File

@@ -1152,6 +1152,9 @@ gimp_clipboard_send_image (GtkClipboard *clipboard,
{
GimpClipboard *gimp_clip = gimp_clipboard_get (gimp);
if (gimp_clip == NULL)
return;
gimp_set_busy (gimp);
if (info == 0)
@@ -1212,6 +1215,9 @@ gimp_clipboard_send_buffer (GtkClipboard *clipboard,
GimpClipboard *gimp_clip = gimp_clipboard_get (gimp);
GdkPixbuf *pixbuf;
if (gimp_clip == NULL)
return;
gimp_set_busy (gimp);
pixbuf = gimp_viewable_get_pixbuf (GIMP_VIEWABLE (gimp_clip->buffer),
@@ -1256,6 +1262,9 @@ gimp_clipboard_send_svg (GtkClipboard *clipboard,
{
GimpClipboard *gimp_clip = gimp_clipboard_get (gimp);
if (gimp_clip == NULL)
return;
gimp_set_busy (gimp);
if (gimp_clip->svg)
@@ -1280,6 +1289,9 @@ gimp_clipboard_send_curve (GtkClipboard *clipboard,
{
GimpClipboard *gimp_clip = gimp_clipboard_get (gimp);
if (gimp_clip == NULL)
return;
gimp_set_busy (gimp);
if (gimp_clip->curve)