From 267493f39137704bd52df65b7605be30d2a062b2 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 23 Jan 2012 10:54:13 +0000 Subject: [PATCH] sna: Assert that the subtract operation does reduce an all-damaged Somewhere somewhen it appears that I am discarding the all-damaged flag on the pointer. The only possibility I can see is for a no-op subtraction, so put an assert there just in case the impossible is happening. Signed-off-by: Chris Wilson --- src/sna/sna_damage.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sna/sna_damage.h b/src/sna/sna_damage.h index 5c003ca9..dc0962f2 100644 --- a/src/sna/sna_damage.h +++ b/src/sna/sna_damage.h @@ -101,6 +101,7 @@ static inline bool sna_damage_is_all(struct sna_damage **_damage, case DAMAGE_SUBTRACT: return false; default: + assert(0); case DAMAGE_ADD: if (damage->extents.x2 < width || damage->extents.x1 > 0) return false; @@ -140,6 +141,7 @@ static inline void sna_damage_subtract(struct sna_damage **damage, RegionPtr region) { *damage = _sna_damage_subtract(DAMAGE_PTR(*damage), region); + assert(*damage == NULL || (*damage)->mode != DAMAGE_ALL); } fastcall struct sna_damage *_sna_damage_subtract_box(struct sna_damage *damage, @@ -148,6 +150,7 @@ static inline void sna_damage_subtract_box(struct sna_damage **damage, const BoxRec *box) { *damage = _sna_damage_subtract_box(DAMAGE_PTR(*damage), box); + assert(*damage == NULL || (*damage)->mode != DAMAGE_ALL); } Bool _sna_damage_intersect(struct sna_damage *damage,