From ccb3ec26cb74cbd39b381c5a5b86b47b3e56f51a Mon Sep 17 00:00:00 2001 From: Nicola Fontana Date: Tue, 10 Feb 2015 22:04:57 +0100 Subject: [PATCH] adg: ignore undefined extents in adg_canvas_apply_margins Previously the extents were applied regardless of the status of the is_defined field. Also, added parameter clean-up to avoid crashes with NULL extents. --- src/adg/adg-canvas.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/adg/adg-canvas.c b/src/adg/adg-canvas.c index bb02815d..d77ee8e6 100644 --- a/src/adg/adg-canvas.c +++ b/src/adg/adg-canvas.c @@ -1050,23 +1050,25 @@ adg_canvas_set_margins(AdgCanvas *canvas, * @extents: where apply the margins * * A convenient function to apply the margins of @canvas to the - * arbitrary #CpmlExtents struct @extents. + * arbitrary #CpmlExtents struct @extents. "Apply" means @extents + * are enlarged of the specific margin values. * * Since: 1.0 **/ void adg_canvas_apply_margins(AdgCanvas *canvas, CpmlExtents *extents) { - AdgCanvasPrivate *data; - g_return_if_fail(ADG_IS_CANVAS(canvas)); + g_return_if_fail(extents != NULL); - data = canvas->data; + if (extents->is_defined) { + AdgCanvasPrivate *data = canvas->data; - extents->org.x -= data->left_margin; - extents->org.y -= data->top_margin; - extents->size.x += data->left_margin + data->right_margin; - extents->size.y += data->top_margin + data->bottom_margin; + extents->org.x -= data->left_margin; + extents->org.y -= data->top_margin; + extents->size.x += data->left_margin + data->right_margin; + extents->size.y += data->top_margin + data->bottom_margin; + } } /** -- 2.11.4.GIT