summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2006-04-26 01:32:55 +0000
committerEric Anholt <anholt@freebsd.org>2006-04-26 01:32:55 +0000
commiteaed7545a25a08b3223bf620c2ab6f80fe7cfdf6 (patch)
treec0f78ebd37468e1e37cb87d9b92ba5610f630477
parent5d00859c6e7d4b7ebce56f438ec4993334de2328 (diff)
Fix a bug in the intersection computation that could concievably cause
incorrect results to be returned (but would probably usually be over-conservative).
-rw-r--r--ChangeLog7
-rw-r--r--exa/exa_render.c5
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index fb08656b6..abf7e5c1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2006-04-25 Eric Anholt <anholt@FreeBSD.org>
+ * exa/exa_render.c: (exaGlyphsIntersect):
+ Fix a bug in the intersection computation that could concievably cause
+ incorrect results to be returned (but would probably usually be
+ over-conservative).
+
+2006-04-25 Eric Anholt <anholt@FreeBSD.org>
+
* exa/exa_render.c: (exaGlyphsIntersect), (exaGlyphs):
Bug #4668: Check if the lists of glyphs don't have any intersecting
glyphs, and if they all have a maskFormat matching the format of the
diff --git a/exa/exa_render.c b/exa/exa_render.c
index 1ce02deab..cdf323a76 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -643,8 +643,11 @@ exaGlyphsIntersect(int nlist, GlyphListPtr list, GlyphPtr *glyphs)
while (n--) {
glyph = *glyphs++;
- if (glyph->info.width == 0 || glyph->info.height == 0)
+ if (glyph->info.width == 0 || glyph->info.height == 0) {
+ x += glyph->info.xOff;
+ y += glyph->info.yOff;
continue;
+ }
x1 = x - glyph->info.x;
if (x1 < MINSHORT)