[PATCH 39/41] drm/i965: fixed _cairo_clip_*() calls
"Enrico Weigelt, metux IT consult" <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
With commit b132fae5e843c329d1414d1a65b2e8d66b99852f, the memory handling of clip objects has changed - they're now managed in an object pool. Therefore consumers need to be updated. Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]> --- src/drm/cairo-drm-i965-glyphs.c | 16 ++++------------ src/drm/cairo-drm-i965-surface.c | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/src/drm/cairo-drm-i965-glyphs.c b/src/drm/cairo-drm-i965-glyphs.c index c66a63d..8c08a0f 100644 --- a/src/drm/cairo-drm-i965-glyphs.c +++ b/src/drm/cairo-drm-i965-glyphs.c @@ -230,8 +230,7 @@ i965_surface_glyphs (void *abstract_surface, i965_device_t *device; i965_glyphs_t glyphs; cairo_composite_rectangles_t extents; - cairo_clip_t local_clip; - cairo_bool_t have_clip = FALSE; + cairo_clip_t *local_clip; cairo_bool_t overlap; cairo_region_t *clip_region = NULL; intel_bo_t *last_bo = NULL; @@ -255,14 +254,8 @@ i965_surface_glyphs (void *abstract_surface, if (clip != NULL && _cairo_clip_contains_rectangle (clip, &extents.mask)) clip = NULL; - if (clip != NULL && extents.is_bounded) { - clip = _cairo_clip_init_copy (&local_clip, clip); - status = _cairo_clip_rectangle (clip, &extents.bounded); - if (unlikely (status)) - return status; - - have_clip = TRUE; - } + if (clip != NULL && extents.is_bounded) + clip = local_clip = _cairo_clip_copy_intersect_rectangle (clip, &extents.bounded); if (overlap || ! extents.is_bounded) { cairo_format_t format; @@ -497,8 +490,7 @@ i965_surface_glyphs (void *abstract_surface, cairo_surface_destroy (&mask->intel.drm.base); } - if (have_clip) - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (local_clip); return status; } diff --git a/src/drm/cairo-drm-i965-surface.c b/src/drm/cairo-drm-i965-surface.c index ec7b595..6870e79 100644 --- a/src/drm/cairo-drm-i965-surface.c +++ b/src/drm/cairo-drm-i965-surface.c @@ -1118,14 +1118,14 @@ i965_surface_paint (void *abstract_dst, clip = NULL; if (clip != NULL) { - clip = _cairo_clip_init_copy (&local_clip, clip); + clip = _cairo_clip_copy (&local_clip); have_clip = TRUE; } status = _cairo_clip_to_boxes (&clip, &extents, &clip_boxes, &num_boxes); if (unlikely (status)) { if (have_clip) - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (&local_clip); return status; } @@ -1138,7 +1138,7 @@ i965_surface_paint (void *abstract_dst, free (clip_boxes); if (have_clip) - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (&local_clip); return status; } @@ -1171,10 +1171,10 @@ i965_surface_mask (void *abstract_dst, clip = NULL; if (clip != NULL && extents.is_bounded) { - clip = _cairo_clip_init_copy (&local_clip, clip); + clip = _cairo_clip_copy (&local_clip); status = _cairo_clip_rectangle (clip, &extents.bounded); if (unlikely (status)) { - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (&local_clip); return status; } @@ -1243,7 +1243,7 @@ i965_surface_mask (void *abstract_dst, err_shader: i965_shader_fini (&shader); if (have_clip) - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (&local_clip); return status; } @@ -1314,14 +1314,14 @@ i965_surface_stroke (void *abstract_dst, clip = NULL; if (clip != NULL) { - clip = _cairo_clip_init_copy (&local_clip, clip); + clip = _cairo_clip_copy (&local_clip); have_clip = TRUE; } status = _cairo_clip_to_boxes (&clip, &extents, &clip_boxes, &num_boxes); if (unlikely (status)) { if (have_clip) - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (&local_clip); return status; } @@ -1384,7 +1384,7 @@ CLEANUP_BOXES: free (clip_boxes); if (have_clip) - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (&local_clip); return status; } @@ -1420,14 +1420,14 @@ i965_surface_fill (void *abstract_dst, clip = NULL; if (clip != NULL) { - clip = _cairo_clip_init_copy (&local_clip, clip); + clip = _cairo_clip_copy (&local_clip); have_clip = TRUE; } status = _cairo_clip_to_boxes (&clip, &extents, &clip_boxes, &num_boxes); if (unlikely (status)) { if (have_clip) - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (&local_clip); return status; } @@ -1487,7 +1487,7 @@ CLEANUP_BOXES: free (clip_boxes); if (have_clip) - _cairo_clip_fini (&local_clip); + _cairo_clip_reset (&local_clip); return status; } -- 2.6.4.442.g545299f -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo