From 91bc9e42e434abd56ce2e4fc5e08d07376fe8bd3 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 20 Jun 2014 16:13:49 +0100 Subject: [PATCH] sna: Mark up const boxes to keep the compiler happy Pass around const to suppress a few compiler warnings. Signed-off-by: Chris Wilson --- src/compat-api.h | 4 +-- src/sna/gen3_render.c | 2 +- src/sna/gen4_render.c | 2 +- src/sna/gen5_render.c | 2 +- src/sna/gen6_render.c | 2 +- src/sna/gen7_render.c | 2 +- src/sna/gen8_render.c | 2 +- src/sna/sna_accel.c | 49 +++++++++++++++++++--------------- src/sna/sna_composite.c | 4 +-- src/sna/sna_damage.c | 6 ++--- src/sna/sna_damage.h | 4 +-- src/sna/sna_display.c | 2 +- src/sna/sna_dri2.c | 2 +- src/sna/sna_glyphs.c | 6 ++--- src/sna/sna_trapezoids_boxes.c | 8 +++--- 15 files changed, 52 insertions(+), 45 deletions(-) diff --git a/src/compat-api.h b/src/compat-api.h index 286d42b0..7e82b78a 100644 --- a/src/compat-api.h +++ b/src/compat-api.h @@ -125,10 +125,10 @@ region_boxptr(const RegionRec *r) return (BoxPtr)(r->data + 1); } -static inline BoxPtr +static inline const BoxRec * region_rects(const RegionRec *r) { - return r->data ? region_boxptr(r) : (BoxPtr)&r->extents; + return r->data ? (const BoxRec *)(r->data + 1) : &r->extents; } #ifndef INCLUDE_LEGACY_REGION_DEFINES diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c index c9e69c38..a1b37b60 100644 --- a/src/sna/gen3_render.c +++ b/src/sna/gen3_render.c @@ -5382,7 +5382,7 @@ gen3_render_video(struct sna *sna, PixmapPtr pixmap) { struct sna_pixmap *priv = sna_pixmap(pixmap); - BoxPtr pbox = region_rects(dstRegion); + const BoxRec *pbox = region_rects(dstRegion); int nbox = region_num_rects(dstRegion); int dst_width = dstRegion->extents.x2 - dstRegion->extents.x1; int dst_height = dstRegion->extents.y2 - dstRegion->extents.y1; diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c index 435ede30..ef982efa 100644 --- a/src/sna/gen4_render.c +++ b/src/sna/gen4_render.c @@ -1406,7 +1406,7 @@ gen4_render_video(struct sna *sna, float src_offset_x, src_offset_y; float src_scale_x, src_scale_y; int nbox, pix_xoff, pix_yoff; - BoxPtr box; + const BoxRec *box; DBG(("%s: %dx%d -> %dx%d\n", __FUNCTION__, src_width, src_height, dst_width, dst_height)); diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c index 4167f7ba..449a394e 100644 --- a/src/sna/gen5_render.c +++ b/src/sna/gen5_render.c @@ -1356,7 +1356,7 @@ gen5_render_video(struct sna *sna, float src_offset_x, src_offset_y; float src_scale_x, src_scale_y; int nbox, pix_xoff, pix_yoff; - BoxPtr box; + const BoxRec *box; DBG(("%s: %dx%d -> %dx%d\n", __FUNCTION__, src_width, src_height, dst_width, dst_height)); diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c index b141b2a0..82bcbe04 100644 --- a/src/sna/gen6_render.c +++ b/src/sna/gen6_render.c @@ -1594,7 +1594,7 @@ gen6_render_video(struct sna *sna, float src_scale_x, src_scale_y; int nbox, pix_xoff, pix_yoff; unsigned filter; - BoxPtr box; + const BoxRec *box; DBG(("%s: src=(%d, %d), dst=(%d, %d), %dx[(%d, %d), (%d, %d)...]\n", __FUNCTION__, diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c index 80c785d9..9aa07133 100644 --- a/src/sna/gen7_render.c +++ b/src/sna/gen7_render.c @@ -1836,7 +1836,7 @@ gen7_render_video(struct sna *sna, float src_scale_x, src_scale_y; int nbox, pix_xoff, pix_yoff; unsigned filter; - BoxPtr box; + const BoxRec *box; DBG(("%s: src=(%d, %d), dst=(%d, %d), %dx[(%d, %d), (%d, %d)...]\n", __FUNCTION__, diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c index 7fd37c1d..e2a4bfc1 100644 --- a/src/sna/gen8_render.c +++ b/src/sna/gen8_render.c @@ -3726,7 +3726,7 @@ gen8_render_video(struct sna *sna, float src_scale_x, src_scale_y; int nbox, pix_xoff, pix_yoff; unsigned filter; - BoxPtr box; + const BoxRec *box; DBG(("%s: src=(%d, %d), dst=(%d, %d), %dx[(%d, %d), (%d, %d)...]\n", __FUNCTION__, diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index d6079263..e5986cca 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -2306,7 +2306,7 @@ skip_inplace_map: } if (priv->gpu_damage) { - BoxPtr box; + const BoxRec *box; int n; DBG(("%s: flushing GPU damage\n", __FUNCTION__)); @@ -2800,7 +2800,7 @@ move_to_cpu: if (priv->clear) { int n = region_num_rects(region); - BoxPtr box = region_rects(region); + const BoxRec *box = region_rects(region); assert(DAMAGE_IS_ALL(priv->gpu_damage)); assert(priv->cpu_damage == NULL); @@ -2889,7 +2889,7 @@ move_to_cpu: */ if (flags & MOVE_WRITE) { int n = region_num_rects(region), i; - BoxPtr boxes = region_rects(region); + const BoxRec *boxes = region_rects(region); BoxPtr blocks; blocks = NULL; @@ -2920,7 +2920,7 @@ move_to_cpu: } if (region_subsumes_damage(r, priv->gpu_damage)) { - BoxPtr box; + const BoxRec *box; int n; DBG(("%s: region wholly contains damage\n", @@ -3287,7 +3287,7 @@ sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int fl bool ok = false; int n; - n = sna_damage_get_boxes(priv->cpu_damage, (BoxPtr *)&box); + n = sna_damage_get_boxes(priv->cpu_damage, &box); assert(n); if (use_cpu_bo_for_upload(sna, priv, 0)) { DBG(("%s: using CPU bo for upload to GPU\n", __FUNCTION__)); @@ -3928,7 +3928,7 @@ sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags) { struct sna *sna = to_sna_from_pixmap(pixmap); struct sna_pixmap *priv; - BoxPtr box; + const BoxRec *box; int n; DBG(("%s(pixmap=%ld, usage=%d), flags=%x\n", @@ -4447,7 +4447,7 @@ try_upload__tiled_x(PixmapPtr pixmap, RegionRec *region, { struct sna *sna = to_sna_from_pixmap(pixmap); struct sna_pixmap *priv = sna_pixmap(pixmap); - BoxRec *box; + const BoxRec *box; uint8_t *dst; int n; @@ -4551,7 +4551,7 @@ try_upload__inplace(PixmapPtr pixmap, RegionRec *region, struct sna_pixmap *priv = sna_pixmap(pixmap); bool ignore_cpu = false; bool replaces; - BoxRec *box; + const BoxRec *box; uint8_t *dst; int n; @@ -4858,7 +4858,7 @@ sna_put_zpixmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region, { PixmapPtr pixmap = get_drawable_pixmap(drawable); unsigned int hint; - BoxRec *box; + const BoxRec *box; int16_t dx, dy; int n; @@ -4954,7 +4954,7 @@ sna_put_xybitmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region, struct sna *sna = to_sna_from_pixmap(pixmap); struct sna_damage **damage; struct kgem_bo *bo; - BoxRec *box; + const BoxRec *box; int16_t dx, dy; int n; uint8_t rop = copy_ROP[gc->alu]; @@ -5486,14 +5486,17 @@ move_to_gpu(PixmapPtr pixmap, struct sna_pixmap *priv, } } -static BoxPtr -reorder_boxes(BoxPtr box, int n, int dx, int dy) +static const BoxRec * +reorder_boxes(const BoxRec *box, int n, int dx, int dy) { - BoxPtr new, base, next, tmp; + const BoxRec *next, *base; + BoxRec *new; DBG(("%s x %d dx=%d, dy=%d\n", __FUNCTION__, n, dx, dy)); if (dy <= 0 && dx <= 0) { + BoxRec *tmp; + new = malloc(sizeof(BoxRec) * n); if (new == NULL) return NULL; @@ -5510,6 +5513,8 @@ reorder_boxes(BoxPtr box, int n, int dx, int dy) base = next = box + n - 1; while (base >= box) { + const BoxRec *tmp; + while (next >= box && base->y1 == next->y1) next--; tmp = next + 1; @@ -5525,6 +5530,8 @@ reorder_boxes(BoxPtr box, int n, int dx, int dy) base = next = box; while (base < box + n) { + const BoxRec *tmp; + while (next < box + n && next->y1 == base->y1) next++; tmp = next; @@ -5546,7 +5553,7 @@ sna_self_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc, PixmapPtr pixmap = get_drawable_pixmap(src); struct sna *sna = to_sna_from_pixmap(pixmap); struct sna_pixmap *priv = sna_pixmap(pixmap); - BoxPtr box = region_rects(region); + const BoxRec *box = region_rects(region); int n = region_num_rects(region); int alu = gc ? gc->alu : GXcopy; int16_t tx, ty, sx, sy; @@ -5659,7 +5666,7 @@ out: free_boxes: if (box != region_rects(region)) - free(box); + free((void *)box); } static inline bool @@ -6060,7 +6067,7 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc, struct kgem_bo *bo; int16_t src_dx, src_dy; int16_t dst_dx, dst_dy; - BoxPtr box = region_rects(region); + const BoxRec *box = region_rects(region); int n = region_num_rects(region); int alu = gc->alu; int stride, bpp; @@ -7924,7 +7931,7 @@ sna_copy_bitmap_blt(DrawablePtr _bitmap, DrawablePtr drawable, GCPtr gc, PixmapPtr bitmap = (PixmapPtr)_bitmap; uint32_t br00, br13; int16_t dx, dy; - BoxPtr box; + const BoxRec *box; int n; DBG(("%s: plane=%x (%d,%d),(%d,%d)xld\n", @@ -8147,7 +8154,7 @@ sna_copy_plane_blt(DrawablePtr source, DrawablePtr drawable, GCPtr gc, int16_t dx, dy; int bit = ffs(bitplane) - 1; uint32_t br00, br13; - BoxPtr box = region_rects(region); + const BoxRec *box = region_rects(region); int n = region_num_rects(region); DBG(("%s: plane=%x [%d] x%d\n", __FUNCTION__, @@ -12645,7 +12652,7 @@ sna_poly_fill_rect_tiled_blt(DrawablePtr drawable, } else { while (n--) { RegionRec region; - BoxRec *box; + const BoxRec *box; int nbox; region.extents.x1 = rect->x + drawable->x; @@ -16066,7 +16073,7 @@ sna_push_pixels_solid_blt(GCPtr gc, struct sna *sna = to_sna_from_pixmap(pixmap); struct sna_damage **damage; struct kgem_bo *bo; - BoxRec *box; + const BoxRec *box; int16_t dx, dy; int n; uint8_t rop = copy_ROP[gc->alu]; @@ -17021,7 +17028,7 @@ static void sna_accel_post_damage(struct sna *sna) xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) { RegionRec region, *damage; PixmapPtr src, dst; - BoxPtr box; + const BoxRec *box; int n; assert(dirty->src == sna->front); diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c index c28cbb6e..5ce6b2f4 100644 --- a/src/sna/sna_composite.c +++ b/src/sna/sna_composite.c @@ -546,7 +546,7 @@ sna_composite_fb(CARD8 op, region->extents.x2 + sx <= src->pDrawable->width && region->extents.y2 + sy <= src->pDrawable->height) { if (sigtrap_get() == 0) { - BoxPtr box = region_rects(region); + const BoxRec *box = region_rects(region); int nbox = region_num_rects(region); sx += src->pDrawable->x; @@ -1103,7 +1103,7 @@ fallback: if (sigtrap_get() == 0) { if (op <= PictOpSrc) { int nbox = region_num_rects(®ion); - BoxPtr box = region_rects(®ion); + const BoxRec *box = region_rects(®ion); uint32_t pixel; if (op == PictOpClear) diff --git a/src/sna/sna_damage.c b/src/sna/sna_damage.c index ec95fff3..8824a10b 100644 --- a/src/sna/sna_damage.c +++ b/src/sna/sna_damage.c @@ -1533,7 +1533,7 @@ bool _sna_damage_intersect(struct sna_damage *damage, } #endif -static int __sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes) +static int __sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes) { assert(damage && damage->mode != DAMAGE_ALL); @@ -1565,7 +1565,7 @@ struct sna_damage *_sna_damage_reduce(struct sna_damage *damage) } #if HAS_DEBUG_FULL -int _sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes) +int _sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes) { char damage_buf[1000]; int count; @@ -1579,7 +1579,7 @@ int _sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes) return count; } #else -int _sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes) +int _sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes) { return __sna_damage_get_boxes(damage, boxes); } diff --git a/src/sna/sna_damage.h b/src/sna/sna_damage.h index 4e4ef2b2..28f7ee60 100644 --- a/src/sna/sna_damage.h +++ b/src/sna/sna_damage.h @@ -244,9 +244,9 @@ sna_damage_contains_box__no_reduce(const struct sna_damage *damage, return _sna_damage_contains_box__no_reduce(damage, box); } -int _sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes); +int _sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes); static inline int -sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes) +sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes) { assert(damage); diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index c5407990..bc35a678 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -5914,7 +5914,7 @@ sna_crtc_redisplay__composite(xf86CrtcPtr crtc, RegionPtr region, struct kgem_bo PictFormatPtr format; PicturePtr src, dst; PixmapPtr pixmap; - BoxPtr b; + const BoxRec *b; int n, depth, error; DBG(("%s: compositing transformed damage boxes\n", __FUNCTION__)); diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c index e9d06ae6..2b8cd037 100644 --- a/src/sna/sna_dri2.c +++ b/src/sna/sna_dri2.c @@ -857,7 +857,7 @@ __sna_dri2_copy_region(struct sna *sna, DrawablePtr draw, RegionPtr region, struct kgem_bo *bo = NULL; struct kgem_bo *src_bo; struct kgem_bo *dst_bo; - BoxRec *boxes; + const BoxRec *boxes; int16_t dx, dy, sx, sy; int w, h, n; diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c index e3e865be..fb4d7f1d 100644 --- a/src/sna/sna_glyphs.c +++ b/src/sna/sna_glyphs.c @@ -580,7 +580,7 @@ glyphs_to_dst(struct sna *sna, struct sna_composite_op tmp; ScreenPtr screen = dst->pDrawable->pScreen; PicturePtr glyph_atlas; - BoxPtr rects; + const BoxRec *rects; int nrect; int16_t x, y; @@ -737,7 +737,7 @@ glyphs0_to_dst(struct sna *sna, struct sna_composite_op tmp; ScreenPtr screen = dst->pDrawable->pScreen; PicturePtr glyph_atlas = NO_ATLAS; - BoxPtr rects; + const BoxRec *rects; int nrect; int x, y; @@ -944,7 +944,7 @@ glyphs_slow(struct sna *sna, while (n--) { GlyphPtr glyph = *glyphs++; struct sna_glyph *p; - BoxPtr rects; + const BoxRec *rects; BoxRec box; int nrect; diff --git a/src/sna/sna_trapezoids_boxes.c b/src/sna/sna_trapezoids_boxes.c index e7d74f51..ba318038 100644 --- a/src/sna/sna_trapezoids_boxes.c +++ b/src/sna/sna_trapezoids_boxes.c @@ -202,7 +202,7 @@ composite_aligned_boxes(struct sna *sna, clip.extents.y2 - clip.extents.y1, COMPOSITE_PARTIAL, memset(&tmp, 0, sizeof(tmp)))) { unsigned int flags; - pixman_box16_t *b; + const pixman_box16_t *b; int i, count; DBG(("%s: composite render op not supported\n", @@ -771,7 +771,7 @@ composite_unaligned_boxes_inplace__solid(struct sna *sna, __FUNCTION__, n)); do { RegionRec clip; - BoxPtr extents; + const BoxRec *extents; int count; clip.extents.x1 = pixman_fixed_to_int(t->left.p1.x); @@ -855,7 +855,7 @@ pixman: do { struct pixman_inplace pi; RegionRec clip; - BoxPtr extents; + const BoxRec *extents; int count; clip.extents.x1 = pixman_fixed_to_int(t->left.p1.x); @@ -1071,7 +1071,7 @@ composite_unaligned_boxes_inplace(struct sna *sna, src_y -= pixman_fixed_to_int(t[0].left.p1.y); do { RegionRec clip; - BoxPtr extents; + const BoxRec *extents; int count; int num_threads;