summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-03-21 20:07:00 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-03-21 20:09:52 +0000
commitc504dba5a76def6358a5b309ad5bc4a8dfe6199e (patch)
treef81a3ea753f9d1dced172b0d6ab8608b194fe32f
parenteafa127001319942e2a5e2009979e3ffd36320ed (diff)
downloadcairo-c504dba5a76def6358a5b309ad5bc4a8dfe6199e.tar.gz
damage: Fix memcpy size
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/cairo-damage.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/cairo-damage.c b/src/cairo-damage.c
index 7b95c845f..f0a73061c 100644
--- a/src/cairo-damage.c
+++ b/src/cairo-damage.c
@@ -85,6 +85,8 @@ _cairo_damage_add_boxes(cairo_damage_t *damage,
struct _cairo_damage_chunk *chunk;
int n, size;
+ TRACE ((stderr, "%s x%d\n", __FUNCTION__, count));
+
if (damage == NULL)
damage = _cairo_damage_create ();
@@ -94,7 +96,8 @@ _cairo_damage_add_boxes(cairo_damage_t *damage,
if (n > damage->remain)
n = damage->remain;
- memcpy (damage->tail->base + damage->tail->count, boxes, n);
+ memcpy (damage->tail->base + damage->tail->count, boxes,
+ n * sizeof (cairo_box_t));
count -= n;
damage->tail->count += n;
@@ -121,7 +124,8 @@ _cairo_damage_add_boxes(cairo_damage_t *damage,
damage->tail->next = chunk;
damage->remain = size - count;
- memcpy (damage->tail->base, boxes + n, count);
+ memcpy (damage->tail->base, boxes + n,
+ count * sizeof (cairo_box_t));
return damage;
}
@@ -130,6 +134,9 @@ cairo_damage_t *
_cairo_damage_add_box(cairo_damage_t *damage,
const cairo_box_t *box)
{
+ TRACE ((stderr, "%s: (%d, %d),(%d, %d)\n", __FUNCTION__,
+ box->p1.x, box->p1.y, box->p2.x, box->p2.y));
+
return _cairo_damage_add_boxes(damage, box, 1);
}
@@ -139,6 +146,9 @@ _cairo_damage_add_rectangle(cairo_damage_t *damage,
{
cairo_box_t box;
+ TRACE ((stderr, "%s: (%d, %d)x(%d, %d)\n", __FUNCTION__,
+ r->x, r->y, r->width, r->height));
+
box.p1.x = r->x;
box.p1.y = r->y;
box.p2.x = r->x + r->width;
@@ -154,6 +164,8 @@ _cairo_damage_add_region (cairo_damage_t *damage,
cairo_box_t *boxes;
int nbox;
+ TRACE ((stderr, "%s\n", __FUNCTION__));
+
boxes = _cairo_region_get_boxes (region, &nbox);
return _cairo_damage_add_boxes(damage, boxes, nbox);
}
@@ -165,6 +177,8 @@ _cairo_damage_reduce (cairo_damage_t *damage)
cairo_box_t *boxes, *b;
struct _cairo_damage_chunk *chunk, *last;
+ TRACE ((stderr, "%s: dirty=%d\n", __FUNCTION__,
+ damage ? damage->dirty : -1));
if (damage == NULL || !damage->dirty)
return damage;