diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2008-03-31 21:49:34 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2008-04-02 10:50:48 +0100 |
commit | 37c69c0d54c4b77c96497db4d6633558d4e1300d (patch) | |
tree | 0e7a95e2893a1fc6199f63eac16ae3f3bd40b7c9 /src/cairo-xlib-private.h | |
parent | 0cd42c25a6f4be1ff27ed3a9ba7fa9a91d076e0d (diff) | |
download | cairo-37c69c0d54c4b77c96497db4d6633558d4e1300d.tar.gz |
[cairo-xlib] Handle malloc failures for cairo_xlib_visual_info_t.
Tidy the error paths whilst handling visuals, in particular avoiding a
couple of potential NULL deferences, missed status checks and fresh
leaks.
Diffstat (limited to 'src/cairo-xlib-private.h')
-rw-r--r-- | src/cairo-xlib-private.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/cairo-xlib-private.h b/src/cairo-xlib-private.h index 5edb5d2c8..5bfc2ec56 100644 --- a/src/cairo-xlib-private.h +++ b/src/cairo-xlib-private.h @@ -133,11 +133,18 @@ _cairo_xlib_screen_get_gc (cairo_xlib_screen_info_t *info, int depth); cairo_private cairo_status_t _cairo_xlib_screen_put_gc (cairo_xlib_screen_info_t *info, int depth, GC gc, cairo_bool_t reset_clip); -cairo_private cairo_xlib_visual_info_t * +cairo_private cairo_status_t _cairo_xlib_screen_get_visual_info (cairo_xlib_screen_info_t *info, - Visual *visual); + Visual *visual, + cairo_xlib_visual_info_t **out); + +cairo_private cairo_status_t +_cairo_xlib_visual_info_create (Display *dpy, + int screen, + VisualID visualid, + cairo_xlib_visual_info_t **out); -cairo_private cairo_xlib_visual_info_t * -_cairo_xlib_visual_info_create (Display *dpy, int screen, VisualID visualid); +cairo_private void +_cairo_xlib_visual_info_destroy (Display *dpy, cairo_xlib_visual_info_t *info); #endif /* CAIRO_XLIB_PRIVATE_H */ |