[gtk/wip/baedert/for-master] gskpango: Fix a potential cairo_t leak
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/baedert/for-master] gskpango: Fix a potential cairo_t leak
- Date: Mon, 21 Dec 2020 12:42:42 +0000 (UTC)
commit bce4d669ee6c66267c7017e440e3c4c4f244e18a
Author: Timm Bäder <mail baedert org>
Date: Mon Dec 21 12:49:06 2020 +0100
gskpango: Fix a potential cairo_t leak
The previous early return did not cairo_destroy() it.
gtk/gskpango.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gskpango.c b/gtk/gskpango.c
index 9242a9bc86..2fa53f0624 100644
--- a/gtk/gskpango.c
+++ b/gtk/gskpango.c
@@ -234,7 +234,6 @@ gsk_pango_renderer_draw_shape (PangoRenderer *renderer,
int y)
{
GskPangoRenderer *crenderer = (GskPangoRenderer *) (renderer);
- cairo_t *cr;
PangoLayout *layout;
PangoCairoShapeRendererFunc shape_renderer;
gpointer shape_renderer_data;
@@ -263,17 +262,21 @@ gsk_pango_renderer_draw_shape (PangoRenderer *renderer,
if (!handled)
{
- cr = gtk_snapshot_append_cairo (crenderer->snapshot, &crenderer->bounds);
+ cairo_t *cr;
layout = pango_renderer_get_layout (renderer);
if (!layout)
return;
+ cr = gtk_snapshot_append_cairo (crenderer->snapshot, &crenderer->bounds);
shape_renderer = pango_cairo_context_get_shape_renderer (pango_layout_get_context (layout),
&shape_renderer_data);
if (!shape_renderer)
- return;
+ {
+ cairo_destroy (cr);
+ return;
+ }
set_color (crenderer, PANGO_RENDER_PART_FOREGROUND, cr);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]