mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-05 16:20:10 +00:00
Don't leak ShmPixmapInfo. (#349858, Chris Wilson)
2006-08-15 Matthias Clasen <mclasen@redhat.com> * gdk/x11/gdkdrawable-x11.c (get_shm_pixmap_for_image): Don't leak ShmPixmapInfo. (#349858, Chris Wilson)
This commit is contained in:
parent
aa62affea8
commit
c74f0bbf65
@ -1,5 +1,11 @@
|
||||
2006-08-15 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/x11/gdkdrawable-x11.c (get_shm_pixmap_for_image): Don't
|
||||
leak ShmPixmapInfo. (#349858, Chris Wilson)
|
||||
|
||||
* gtk/Makefile.am (GTK_PRINT_PREVIEW_COMMAND): Call evince
|
||||
with the --preview option. (#350139, Carlos Garcia Campos)
|
||||
|
||||
* modules/printbackends/cups/gtkprintbackendcups.c (create_pickone_option):
|
||||
Simplify, make it build against cups 1.1. (#350329)
|
||||
|
||||
|
@ -1,5 +1,11 @@
|
||||
2006-08-15 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/x11/gdkdrawable-x11.c (get_shm_pixmap_for_image): Don't
|
||||
leak ShmPixmapInfo. (#349858, Chris Wilson)
|
||||
|
||||
* gtk/Makefile.am (GTK_PRINT_PREVIEW_COMMAND): Call evince
|
||||
with the --preview option. (#350139, Carlos Garcia Campos)
|
||||
|
||||
* modules/printbackends/cups/gtkprintbackendcups.c (create_pickone_option):
|
||||
Simplify, make it build against cups 1.1. (#350329)
|
||||
|
||||
|
@ -1257,12 +1257,26 @@ typedef struct _ShmPixmapInfo ShmPixmapInfo;
|
||||
|
||||
struct _ShmPixmapInfo
|
||||
{
|
||||
GdkImage *image;
|
||||
Display *display;
|
||||
Pixmap pix;
|
||||
Picture pict;
|
||||
Picture mask;
|
||||
};
|
||||
|
||||
static void
|
||||
shm_pixmap_info_destroy (gpointer data)
|
||||
{
|
||||
ShmPixmapInfo *info = data;
|
||||
|
||||
if (info->pict != None)
|
||||
XRenderFreePicture (info->display, info->pict);
|
||||
if (info->mask != None)
|
||||
XRenderFreePicture (info->display, info->mask);
|
||||
|
||||
g_free (data);
|
||||
}
|
||||
|
||||
|
||||
/* Returns FALSE if we can't get a shm pixmap */
|
||||
static gboolean
|
||||
get_shm_pixmap_for_image (Display *xdisplay,
|
||||
@ -1287,6 +1301,7 @@ get_shm_pixmap_for_image (Display *xdisplay,
|
||||
return FALSE;
|
||||
|
||||
info = g_new (ShmPixmapInfo, 1);
|
||||
info->display = xdisplay;
|
||||
info->pix = *pix;
|
||||
|
||||
info->pict = XRenderCreatePicture (xdisplay, info->pix,
|
||||
@ -1297,7 +1312,8 @@ get_shm_pixmap_for_image (Display *xdisplay,
|
||||
else
|
||||
info->mask = None;
|
||||
|
||||
g_object_set_data (G_OBJECT (image), "gdk-x11-shm-pixmap", info);
|
||||
g_object_set_data_full (G_OBJECT (image), "gdk-x11-shm-pixmap", info,
|
||||
shm_pixmap_info_destroy);
|
||||
}
|
||||
|
||||
*pix = info->pix;
|
||||
|
Loading…
Reference in New Issue
Block a user