diff options
author | Eric Anholt <anholt@freebsd.org> | 2006-04-26 01:32:55 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2006-04-26 01:32:55 +0000 |
commit | eaed7545a25a08b3223bf620c2ab6f80fe7cfdf6 (patch) | |
tree | c0f78ebd37468e1e37cb87d9b92ba5610f630477 | |
parent | 5d00859c6e7d4b7ebce56f438ec4993334de2328 (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-- | ChangeLog | 7 | ||||
-rw-r--r-- | exa/exa_render.c | 5 |
2 files changed, 11 insertions, 1 deletions
@@ -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) |