From 47dfac2305261e8469da90120a1a4e8af43265ed Mon Sep 17 00:00:00 2001 From: Olivier Fourdan <fourdan.olivier@wanadoo.fr> Date: Fri, 1 Oct 2004 20:09:12 +0000 Subject: [PATCH] Redo the checks, Fix a potential leak. (Old svn revision: 12010) --- src/compositor.c | 344 ++++++++++++++++++++++++----------------------- 1 file changed, 179 insertions(+), 165 deletions(-) diff --git a/src/compositor.c b/src/compositor.c index 5008a8766..2cf98f701 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -68,6 +68,7 @@ struct _CWindow Picture alphaPict; Picture shadowPict; XserverRegion borderSize; + XserverRegion borderClip; XserverRegion extents; Picture shadow; gint shadow_dx; @@ -77,10 +78,6 @@ struct _CWindow gint mode; guint opacity; gboolean skipped; - - XserverRegion last_painted_extents; - XserverRegion borderClip; - #if HAVE_NAME_WINDOW_PIXMAP Pixmap name_window_pixmap; #endif /* HAVE_NAME_WINDOW_PIXMAP */ @@ -93,6 +90,7 @@ find_cwindow_in_screen (ScreenInfo *screen_info, Window id) g_return_val_if_fail (id != None, NULL); g_return_val_if_fail (screen_info != NULL, NULL); + TRACE ("entering find_cwindow_in_screen"); for (index = screen_info->cwindows; index; index = g_list_next (index)) { @@ -112,6 +110,7 @@ find_cwindow_in_display (DisplayInfo *display_info, Window id) g_return_val_if_fail (id != None, NULL); g_return_val_if_fail (display_info != NULL, NULL); + TRACE ("entering find_cwindow_in_display"); for (index = display_info->screens; index; index = g_slist_next (index)) { @@ -199,6 +198,9 @@ sum_gaussian (gaussian_conv *map, gdouble opacity, gint x, gint y, gint width, g gint fy_start, fy_end; gdouble v; + g_return_val_if_fail (map != NULL, (guchar) 255.0); + TRACE ("entering sum_gaussian"); + fx_start = center - x; if (fx_start < 0) { @@ -249,6 +251,10 @@ presum_gaussian (ScreenInfo *screen_info) gint opacity, x, y; gaussian_conv * map; + g_return_if_fail (screen_info != NULL); + g_return_if_fail (screen_info->gaussianMap != NULL); + TRACE ("entering presum_gaussian"); + map = screen_info->gaussianMap; screen_info->gsize = map->size; center = map->size / 2; @@ -326,16 +332,19 @@ make_shadow (ScreenInfo *screen_info, gdouble opacity, gint width, gint height) gint x_diff; gint opacity_gint = (gint) (opacity * 25); - TRACE ("entering make_shadow"); + g_return_val_if_fail (screen_info != NULL, NULL); + TRACE ("entering make_shadow"); + data = g_malloc (swidth * sheight * sizeof (guchar)); ximage = XCreateImage (myScreenGetXDisplay (screen_info), DefaultVisual(myScreenGetXDisplay (screen_info), screen_info->screen), 8, ZPixmap, 0, (char *) data, swidth, sheight, 8, swidth * sizeof (guchar)); - if (!ximage) + if (ximage == NULL) { - free (data); + g_free (data); + g_warning ("(ximage != NULL) failed"); return NULL; } @@ -440,7 +449,7 @@ make_shadow (ScreenInfo *screen_info, gdouble opacity, gint width, gint height) } static Picture -shadow_picture (ScreenInfo *screen_info, gdouble opacity, Picture alpha_pict, +shadow_picture (ScreenInfo *screen_info, gdouble opacity, gint width, gint height, gint *wp, gint *hp) { XImage *shadowImage; @@ -449,26 +458,22 @@ shadow_picture (ScreenInfo *screen_info, gdouble opacity, Picture alpha_pict, XRenderPictFormat *render_format; GC gc; + g_return_val_if_fail (screen_info != NULL, None); TRACE ("entering shadow_picture"); - + render_format = XRenderFindStandardFormat (myScreenGetXDisplay (screen_info), PictStandardA8); - if (!render_format) - { - return None; - } + g_return_val_if_fail (render_format != NULL, None); shadowImage = make_shadow (screen_info, opacity, width, height); - if (shadowImage == None) - { - return None; - } + g_return_val_if_fail (shadowImage != None, None); shadowPixmap = XCreatePixmap (myScreenGetXDisplay (screen_info), screen_info->xroot, shadowImage->width, shadowImage->height, 8); if (shadowPixmap == None) { XDestroyImage (shadowImage); + g_warning ("(shadowPixmap != None) failed"); return None; } @@ -478,15 +483,17 @@ shadow_picture (ScreenInfo *screen_info, gdouble opacity, Picture alpha_pict, { XDestroyImage (shadowImage); XFreePixmap (myScreenGetXDisplay (screen_info), shadowPixmap); + g_warning ("(shadowPicture != None) failed"); return None; } gc = XCreateGC (myScreenGetXDisplay (screen_info), shadowPixmap, 0, 0); - if (!gc) + if (gc == None) { XDestroyImage (shadowImage); XFreePixmap (myScreenGetXDisplay (screen_info), shadowPixmap); XRenderFreePicture (myScreenGetXDisplay (screen_info), shadowPicture); + g_warning ("(gc != None) failed"); return None; } @@ -513,21 +520,16 @@ solid_picture (ScreenInfo *screen_info, gboolean argb, XRenderPictFormat *render_format; XRenderColor c; + g_return_val_if_fail (screen_info, None); TRACE ("entering solid_picture"); render_format = XRenderFindStandardFormat (myScreenGetXDisplay (screen_info), argb ? PictStandardARGB32 : PictStandardA8); - if (!render_format) - { - return None; - } + g_return_val_if_fail (render_format != NULL , None); pixmap = XCreatePixmap (myScreenGetXDisplay (screen_info), screen_info->xroot, 1, 1, argb ? 32 : 8); - if (pixmap == None) - { - return None; - } + g_return_val_if_fail (pixmap != None, None); pa.repeat = True; picture = XRenderCreatePicture (myScreenGetXDisplay (screen_info), pixmap, @@ -535,6 +537,7 @@ solid_picture (ScreenInfo *screen_info, gboolean argb, if (picture == None) { XFreePixmap (myScreenGetXDisplay (screen_info), pixmap); + g_warning ("(picture != None) failed"); return None; } @@ -558,17 +561,14 @@ border_size (CWindow *cw) ScreenInfo *screen_info; g_return_val_if_fail (cw != NULL, None); - TRACE ("entering border_size"); + screen_info = cw->screen_info; display_info = screen_info->display_info; border = XFixesCreateRegionFromWindow (display_info->dpy, cw->id, WindowRegionBounding); - if (!border) - { - return None; - } - + g_return_val_if_fail (border != None, None); + XFixesTranslateRegion (display_info->dpy, border, cw->attr.x + cw->attr.border_width, cw->attr.y + cw->attr.border_width); @@ -589,7 +589,9 @@ root_tile (ScreenInfo *screen_info) gint p; Atom backgroundProps[2] = { misc_xrootpmap, misc_xsetroot }; - TRACE ("entering root_tile"); + g_return_val_if_fail (screen_info != NULL, None); + TRACE ("entering root_tile"); + display_info = screen_info->display_info; dpy = display_info->dpy; pixmap = None; @@ -625,22 +627,13 @@ root_tile (ScreenInfo *screen_info) { pixmap = XCreatePixmap (dpy, screen_info->xroot, 1, 1, DefaultDepth (dpy, screen_info->screen)); - if (!pixmap) - { - /* Give up! */ - return None; - } + g_return_val_if_fail (pixmap != None, None); fill = True; } pa.repeat = True; format = XRenderFindVisualFormat (dpy, DefaultVisual (dpy, screen_info->screen)); - - if (!format) - { - /* Give up! */ - return None; - } - + g_return_val_if_fail (format != NULL, None); + picture = XRenderCreatePicture (dpy, pixmap, format, CPRepeat, &pa); if ((picture != None) && (fill)) { @@ -667,7 +660,8 @@ create_root_buffer (ScreenInfo *screen_info) gint screen_number; g_return_if_fail (screen_info != NULL); - + TRACE ("entering create_root_buffer"); + screen_width = gdk_screen_get_width (screen_info->gscr); screen_height = gdk_screen_get_height (screen_info->gscr); screen_number = screen_info->screen; @@ -675,20 +669,12 @@ create_root_buffer (ScreenInfo *screen_info) depth = DefaultDepth (myScreenGetXDisplay (screen_info), screen_number); format = XRenderFindVisualFormat (myScreenGetXDisplay (screen_info), visual); - if (!format) - { - /* Give up! */ - return (None); - } + g_return_val_if_fail (format != NULL, None); rootPixmap = XCreatePixmap (myScreenGetXDisplay (screen_info), screen_info->xroot, screen_width, screen_height, depth); - if (rootPixmap == None) - { - /* Give up! */ - return (None); - } + g_return_val_if_fail (rootPixmap != None, None); pict = XRenderCreatePicture (myScreenGetXDisplay (screen_info), rootPixmap, format, 0, 0); @@ -707,12 +693,7 @@ paint_root (ScreenInfo *screen_info) if (screen_info->rootTile == None) { screen_info->rootTile = root_tile (screen_info); - } - - if (screen_info->rootTile == None) - { - /* Give up! */ - return; + g_return_if_fail (screen_info->rootTile != None); } XRenderComposite (myScreenGetXDisplay (screen_info), PictOpSrc, @@ -726,7 +707,7 @@ static XserverRegion win_extents (CWindow *cw) { ScreenInfo *screen_info; - Client *c = NULL; + Client *c = cw->c; XRectangle r; g_return_val_if_fail (cw != NULL, None); @@ -739,64 +720,57 @@ win_extents (CWindow *cw) r.width = cw->attr.width + cw->attr.border_width * 2; r.height = cw->attr.height + cw->attr.border_width * 2; - if (cw->c) + if (c) { - c = cw->c; - if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)) + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER) && (cw->mode != WINDOW_ARGB)) { - TRACE ("window 0x%lx has no border, no extents", cw->id); - return XFixesCreateRegion (myScreenGetXDisplay (screen_info), &r, 1); + XRectangle sr; + + TRACE ("window 0x%lx (%s) has extents", cw->id, c->name); + cw->shadow_dx = SHADOW_OFFSET_X; + cw->shadow_dy = SHADOW_OFFSET_Y; + if (!cw->shadow) + { + double opacity = SHADOW_OPACITY; + if (cw->mode == WINDOW_TRANS) + { + opacity = opacity * ((double) cw->opacity) / ((double) OPAQUE); + } + cw->shadow = shadow_picture (screen_info, opacity, + cw->attr.width + cw->attr.border_width * 2, + cw->attr.height + cw->attr.border_width * 2, + &cw->shadow_width, &cw->shadow_height); + } + + sr.x = cw->attr.x + cw->shadow_dx; + sr.y = cw->attr.y + cw->shadow_dy; + sr.width = cw->shadow_width; + sr.height = cw->shadow_height; + + if (sr.x < r.x) + { + r.width = (r.x + r.width) - sr.x; + r.x = sr.x; + } + if (sr.y < r.y) + { + r.height = (r.y + r.height) - sr.y; + r.y = sr.y; + } + if (sr.x + sr.width > r.x + r.width) + { + r.width = sr.x + sr.width - r.x; + } + if (sr.y + sr.height > r.y + r.height) + { + r.height = sr.y + sr.height - r.y; + } } } else { TRACE ("window 0x%lx has no client, no extents", cw->id); } - - if ((cw->mode != WINDOW_ARGB) && (c)) - { - XRectangle sr; - - TRACE ("window 0x%lx (%s) has extents", cw->id, c->name); - cw->shadow_dx = SHADOW_OFFSET_X; - cw->shadow_dy = SHADOW_OFFSET_Y; - if (!cw->shadow) - { - double opacity = SHADOW_OPACITY; - if (cw->mode == WINDOW_TRANS) - { - opacity = opacity * ((double) cw->opacity) / ((double) OPAQUE); - } - cw->shadow = shadow_picture (screen_info, opacity, cw->alphaPict, - cw->attr.width + cw->attr.border_width * 2, - cw->attr.height + cw->attr.border_width * 2, - &cw->shadow_width, &cw->shadow_height); - } - - sr.x = cw->attr.x + cw->shadow_dx; - sr.y = cw->attr.y + cw->shadow_dy; - sr.width = cw->shadow_width; - sr.height = cw->shadow_height; - - if (sr.x < r.x) - { - r.width = (r.x + r.width) - sr.x; - r.x = sr.x; - } - if (sr.y < r.y) - { - r.height = (r.y + r.height) - sr.y; - r.y = sr.y; - } - if (sr.x + sr.width > r.x + r.width) - { - r.width = sr.x + sr.width - r.x; - } - if (sr.y + sr.height > r.y + r.height) - { - r.height = sr.y + sr.height - r.y; - } - } return XFixesCreateRegion (myScreenGetXDisplay (screen_info), &r, 1); } @@ -805,8 +779,12 @@ static void get_paint_bounds (CWindow *cw, gint *x, gint *y, gint *w, gint *h) { g_return_if_fail (cw != NULL); - - TRACE ("entering get_paint_bounds"); + g_return_if_fail (x != NULL); + g_return_if_fail (y != NULL); + g_return_if_fail (w != NULL); + g_return_if_fail (h != NULL); + TRACE ("entering get_paint_bounds"); + #if HAVE_NAME_WINDOW_PIXMAP *x = cw->attr.x; *y = cw->attr.y; @@ -825,6 +803,9 @@ get_window_format (CWindow *cw) { XRenderPictFormat *format; + g_return_val_if_fail (cw != NULL, NULL); + TRACE ("entering get_window_format"); + format = XRenderFindVisualFormat (myScreenGetXDisplay (cw->screen_info), cw->attr.visual); if (!format) { @@ -844,8 +825,12 @@ get_window_picture (CWindow *cw) ScreenInfo *screen_info; XRenderPictureAttributes pa; XRenderPictFormat *format; - Drawable draw = cw->id; + Drawable draw; + g_return_val_if_fail (cw != NULL, None); + TRACE ("entering get_window_picture"); + + draw = cw->id; screen_info = cw->screen_info; display_info = screen_info->display_info; dpy = display_info->dpy; @@ -881,9 +866,10 @@ paint_all (ScreenInfo *screen_info, XserverRegion region) Window xroot; TRACE ("entering paint_all"); + g_return_if_fail (screen_info); + display_info = screen_info->display_info; dpy = display_info->dpy; - screen_width = gdk_screen_get_width (screen_info->gscr); screen_height = gdk_screen_get_height (screen_info->gscr); screen_number = screen_info->screen; @@ -899,23 +885,14 @@ paint_all (ScreenInfo *screen_info, XserverRegion region) r.width = screen_width; r.height = screen_height; region = XFixesCreateRegion (dpy, &r, 1); + g_return_if_fail (region != None); } - if (region == None) - { - /* Give up! */ - return; - } - /* Create root buffer if not done yet */ if (screen_info->rootBuffer == None) { screen_info->rootBuffer = create_root_buffer (screen_info); - if (screen_info->rootBuffer == None) - { - /* Give up! */ - return; - } + g_return_if_fail (screen_info->rootBuffer != None); } XFixesSetPictureClipRegion (dpy, screen_info->rootPicture, 0, 0, region); @@ -1135,6 +1112,7 @@ repair_win (CWindow *cw) ScreenInfo *screen_info; g_return_if_fail (cw != NULL); + g_return_if_fail (cw->damage != None); TRACE ("entering repair_win"); screen_info = cw->screen_info; @@ -1174,7 +1152,9 @@ get_opacity_prop(CWindow *cw, guint def) guchar *data; gint result; + g_return_val_if_fail (cw, def); TRACE ("entering get_opacity_prop"); + screen_info = cw->screen_info; result = XGetWindowProperty(myScreenGetXDisplay (screen_info), cw->id, net_wm_opacity, 0L, 1L, False, XA_CARDINAL, &actual, &format, &n, &left, &data); @@ -1244,9 +1224,15 @@ expose_root (ScreenInfo *screen_info, XRectangle *rects, gint nrects) { XserverRegion region; + g_return_if_fail (rects != NULL); + g_return_if_fail (nrects > 0); + TRACE ("entering expose_root"); region = XFixesCreateRegion (myScreenGetXDisplay (screen_info), rects, nrects); - add_damage (screen_info, region); + if (region != None) + { + add_damage (screen_info, region); + } } static void @@ -1266,15 +1252,15 @@ unmap_win (CWindow *cw) TRACE ("entering unmap_win"); g_return_if_fail (cw != NULL); - + cw->damaged = FALSE; - screen_info = cw->screen_info; cw->viewable = FALSE; if (cw->extents != None) { add_damage (screen_info, cw->extents); + /* cw->extents is freed by add_damage () */ cw->extents = None; } free_win_data (cw, FALSE); @@ -1404,13 +1390,17 @@ add_win (DisplayInfo *display_info, Window id, Client *c, Window above) } void -restack_win (ScreenInfo *screen_info, CWindow *cw, Window above) +restack_win (CWindow *cw, Window above) { + ScreenInfo *screen_info; Window previous_above = None; GList *sibling; GList *next; + g_return_if_fail (cw != NULL); TRACE ("entering restack_win"); + + screen_info = cw->screen_info; sibling = g_list_find (screen_info->cwindows, (gconstpointer) cw); next = g_list_next (sibling); @@ -1452,7 +1442,10 @@ destroy_win (ScreenInfo *screen_info, Window id, gboolean gone) { CWindow *cw; + g_return_if_fail (screen_info != NULL); + g_return_if_fail (id != None); TRACE ("entering destroy_win: 0x%lx %s", id, gone ? "gone" : "not gone" ); + cw = find_cwindow_in_screen (screen_info, id); if (cw) { @@ -1469,6 +1462,9 @@ destroy_win (ScreenInfo *screen_info, Window id, gboolean gone) static void compositorRepairScreen (ScreenInfo *screen_info) { + g_return_if_fail (screen_info); + TRACE ("entering compositorRepairScreen"); + if (screen_info->allDamage != None) { paint_all (screen_info, screen_info->allDamage); @@ -1482,9 +1478,9 @@ compositorDoRepair (DisplayInfo *display_info) { GSList *screens; + g_return_if_fail (display_info); TRACE ("entering compositorDoRepair"); - g_return_if_fail (display_info); if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1502,8 +1498,10 @@ compositorHandleDamage (DisplayInfo *display_info, XDamageNotifyEvent *ev) { CWindow *cw; - TRACE ("entering compositorHandleDamage"); - TRACE ("Damaged window: 0x%lx", ev->drawable); + g_return_if_fail (display_info != NULL); + g_return_if_fail (ev != NULL); + TRACE ("entering compositorHandleDamage for 0x%lx", ev->drawable); + cw = find_cwindow_in_display (display_info, ev->drawable); if (cw) { @@ -1518,7 +1516,10 @@ compositorHandlePropertyNotify (DisplayInfo *display_info, XPropertyEvent *ev) gint p; Atom backgroundProps[2] = { misc_xrootpmap, misc_xsetroot }; - TRACE ("entering compositorHandlePropertyNotify"); + g_return_if_fail (display_info != NULL); + g_return_if_fail (ev != NULL); + TRACE ("entering compositorHandlePropertyNotify for 0x%lx", ev->window); + if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1557,9 +1558,12 @@ compositorHandlePropertyNotify (DisplayInfo *display_info, XPropertyEvent *ev) { XRenderFreePicture (myScreenGetXDisplay (cw->screen_info), cw->shadow); cw->shadow = None; + if (cw->extents) + { + XFixesDestroyRegion (myScreenGetXDisplay (cw->screen_info), cw->extents); + } cw->extents = win_extents (cw); compositorRepairScreen (cw->screen_info); - } } } @@ -1575,8 +1579,10 @@ compositorHandleExpose (DisplayInfo *display_info, XExposeEvent *ev) ScreenInfo *screen_info; XRectangle rect[1]; - TRACE ("entering compositorHandleExpose"); - g_return_if_fail (display_info); + g_return_if_fail (display_info != NULL); + g_return_if_fail (ev != NULL); + TRACE ("entering compositorHandleExpose for 0x%lx", ev->window); + if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1606,8 +1612,10 @@ compositorHandleConfigureNotify (DisplayInfo *display_info, XConfigureEvent *ev) XserverRegion damage = None; CWindow *cw; - TRACE ("entering compositorHandleConfigureNotify"); - g_return_if_fail (display_info); + g_return_if_fail (display_info != NULL); + g_return_if_fail (ev != NULL); + TRACE ("entering compositorHandleConfigureNotify for 0x%lx", ev->window); + if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1615,7 +1623,6 @@ compositorHandleConfigureNotify (DisplayInfo *display_info, XConfigureEvent *ev) } cw = find_cwindow_in_display (display_info, ev->window); - if (!cw) { ScreenInfo *screen_info = myDisplayGetScreenFromWindow (display_info, ev->window); @@ -1667,7 +1674,7 @@ compositorHandleConfigureNotify (DisplayInfo *display_info, XConfigureEvent *ev) cw->attr.height = ev->height; cw->attr.border_width = ev->border_width; cw->attr.override_redirect = ev->override_redirect; - restack_win (cw->screen_info, cw, ev->above); + restack_win (cw, ev->above); if (damage) { @@ -1691,8 +1698,10 @@ compositorHandleCirculateNotify (DisplayInfo *display_info, XCirculateEvent *ev) GList *first; Window above = None; - TRACE ("entering compositorHandleCirculateNotify"); - g_return_if_fail (display_info); + g_return_if_fail (display_info != NULL); + g_return_if_fail (ev != NULL); + TRACE ("entering compositorHandleCirculateNotify for 0x%lx", ev->window); + if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1716,7 +1725,7 @@ compositorHandleCirculateNotify (DisplayInfo *display_info, XCirculateEvent *ev) { above = None; } - restack_win (cw->screen_info, cw, above); + restack_win (cw, above); cw->screen_info->clipChanged = TRUE; compositorRepairScreen (cw->screen_info); } @@ -1729,8 +1738,10 @@ compositorWindowMap (DisplayInfo *display_info, Window id) #ifdef HAVE_COMPOSITOR CWindow *cw; - TRACE ("entering compositorWindowMap: 0x%lx", id); - g_return_if_fail (display_info); + g_return_if_fail (display_info != NULL); + g_return_if_fail (id != None); + TRACE ("entering compositorWindowMap for 0x%lx", id); + if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1760,8 +1771,10 @@ compositorWindowUnmap (DisplayInfo *display_info, Window id) #ifdef HAVE_COMPOSITOR CWindow *cw; - TRACE ("entering compositorWindowUnmap: 0x%lx", id); - g_return_if_fail (display_info); + g_return_if_fail (display_info != NULL); + g_return_if_fail (id != None); + TRACE ("entering compositorWindowUnmap for 0x%lx", id); + if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1783,8 +1796,10 @@ compositorAddWindow (DisplayInfo *display_info, Window id, Client *c) #ifdef HAVE_COMPOSITOR CWindow *cw; - TRACE ("entering compositorAddWindow: 0x%lx", id); - g_return_if_fail (display_info); + g_return_if_fail (display_info != NULL); + g_return_if_fail (id != None); + TRACE ("entering compositorAddWindow for 0x%lx", id); + if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1810,8 +1825,10 @@ compositorRemoveWindow (DisplayInfo *display_info, Window id) #ifdef HAVE_COMPOSITOR CWindow *cw; + g_return_if_fail (display_info != NULL); + g_return_if_fail (id != None); TRACE ("entering compositorRemoveWindow: 0x%lx", id); - g_return_if_fail (display_info); + if (!(display_info->enable_compositor)) { TRACE ("compositor disabled"); @@ -1832,6 +1849,9 @@ void compositorHandleEvent (DisplayInfo *display_info, XEvent *ev) { #ifdef HAVE_COMPOSITOR + + g_return_if_fail (display_info != NULL); + g_return_if_fail (ev != NULL); TRACE ("entering compositorHandleEvent"); if (!(display_info->enable_compositor)) @@ -1867,6 +1887,8 @@ void compositorInitDisplay (DisplayInfo *display_info) { #ifdef HAVE_COMPOSITOR + + g_return_if_fail (display_info != NULL); TRACE ("entering compositorInitDisplay"); if (!XCompositeQueryExtension (display_info->dpy, @@ -1923,6 +1945,7 @@ compositorManageScreen (ScreenInfo *screen_info) XRenderPictureAttributes pa; XRenderPictFormat *visual_format; + g_return_if_fail (screen_info != NULL); TRACE ("entering compositorManageScreen"); display_info = screen_info->display_info; @@ -1935,21 +1958,12 @@ compositorManageScreen (ScreenInfo *screen_info) visual_format = XRenderFindVisualFormat (display_info->dpy, DefaultVisual (display_info->dpy, screen_info->screen)); - if (!visual_format) - { - /* Give up! */ - return; - } + g_return_if_fail (visual_format != NULL); pa.subwindow_mode = IncludeInferiors; screen_info->rootPicture = XRenderCreatePicture (display_info->dpy, screen_info->xroot, visual_format, CPSubwindowMode, &pa); - - if (screen_info->rootPicture == None) - { - /* Give up! */ - return; - } + g_return_if_fail (screen_info->rootPicture != None); screen_info->gsize = -1; screen_info->gaussianMap = make_gaussian_map(SHADOW_RADIUS); @@ -1975,6 +1989,7 @@ compositorUnmanageScreen (ScreenInfo *screen_info) GList *index; gint i = 0; + g_return_if_fail (screen_info != NULL); TRACE ("entering compositorUnmanageScreen"); display_info = screen_info->display_info; @@ -2034,7 +2049,6 @@ compositorDamageClient (Client *c) ScreenInfo *screen_info; g_return_if_fail (c != NULL); - TRACE ("entering compositorDamageClient"); screen_info = c->screen_info; -- GitLab