[evince] [dvi] Test glyph->data for MDVI_GLYPH_EMPTY
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince] [dvi] Test glyph->data for MDVI_GLYPH_EMPTY
- Date: Tue, 3 Aug 2010 07:48:15 +0000 (UTC)
commit 9f258bd6009e1ae92579cf159d81ad8c28280666
Author: Marek Kasik <mkasik redhat com>
Date: Tue Aug 3 09:27:42 2010 +0200
[dvi] Test glyph->data for MDVI_GLYPH_EMPTY
MDVI marks empty glyphs by setting its data pointer to 0x1
(MDVI_GLYPH_EMPTY constant) but it doesn't check for the
emptiness sometimes. Fixes bug #600552.
backend/dvi/cairo-device.c | 4 +++-
backend/dvi/mdvi-lib/font.c | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/backend/dvi/cairo-device.c b/backend/dvi/cairo-device.c
index 9a8ca0e..47425ca 100644
--- a/backend/dvi/cairo-device.c
+++ b/backend/dvi/cairo-device.c
@@ -55,7 +55,9 @@ dvi_cairo_draw_glyph (DviContext *dvi,
glyph = &ch->grey;
- isbox = (glyph->data == NULL || (dvi->params.flags & MDVI_PARAM_CHARBOXES));
+ isbox = (glyph->data == NULL ||
+ (dvi->params.flags & MDVI_PARAM_CHARBOXES) ||
+ MDVI_GLYPH_ISEMPTY (glyph->data));
x = - glyph->x + x0 + cairo_device->xmargin;
y = - glyph->y + y0 + cairo_device->ymargin;
diff --git a/backend/dvi/mdvi-lib/font.c b/backend/dvi/mdvi-lib/font.c
index 2d488d6..2f655df 100644
--- a/backend/dvi/mdvi-lib/font.c
+++ b/backend/dvi/mdvi-lib/font.c
@@ -379,10 +379,12 @@ again:
return ch;
} else if(MDVI_ENABLED(dvi, MDVI_PARAM_ANTIALIASED)) {
if(ch->grey.data &&
+ !MDVI_GLYPH_ISEMPTY(ch->grey.data) &&
ch->fg == dvi->curr_fg &&
ch->bg == dvi->curr_bg)
return ch;
- if(ch->grey.data) {
+ if(ch->grey.data &&
+ !MDVI_GLYPH_ISEMPTY(ch->grey.data)) {
if(dvi->device.free_image)
dvi->device.free_image(ch->grey.data);
ch->grey.data = NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]