From: Marek Kasik Date: Tue, 3 Aug 2010 07:27:42 +0000 (+0200) Subject: [dvi] Test glyph->data for MDVI_GLYPH_EMPTY X-Git-Tag: EVINCE_2_31_6_1~8 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=9f258bd6009e1ae92579cf159d81ad8c28280666;p=evince.git [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. --- diff --git a/backend/dvi/cairo-device.c b/backend/dvi/cairo-device.c index 9a8ca0ea..47425cad 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 2d488d62..2f655df0 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;