Mercurial > emacs
changeset 100211:555a00476e3a
(w32font_draw): Initialize orig_clip before getting it, and delete it
when finished.
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Thu, 04 Dec 2008 15:21:53 +0000 |
parents | e3e43d2279ea |
children | 8770d8ed68e4 |
files | src/w32font.c |
diffstat | 1 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/w32font.c Thu Dec 04 13:41:10 2008 +0000 +++ b/src/w32font.c Thu Dec 04 15:21:53 2008 +0000 @@ -530,18 +530,23 @@ int from, to, x, y, with_background; { UINT options; - HRGN orig_clip; + HRGN orig_clip = NULL; struct w32font_info *w32font = (struct w32font_info *) s->font; options = w32font->glyph_idx; - /* Save clip region for later restoration. */ - GetClipRgn(s->hdc, orig_clip); - if (s->num_clips > 0) { HRGN new_clip = CreateRectRgnIndirect (s->clip); + /* Save clip region for later restoration. */ + orig_clip = CreateRectRgn (0, 0, 0, 0); + if (!GetClipRgn(s->hdc, orig_clip)) + { + DeleteObject (orig_clip); + orig_clip = NULL; + } + if (s->num_clips > 1) { HRGN clip2 = CreateRectRgnIndirect (s->clip + 1); @@ -585,9 +590,10 @@ /* Restore clip region. */ if (s->num_clips > 0) - { - SelectClipRgn (s->hdc, orig_clip); - } + SelectClipRgn (s->hdc, orig_clip); + + if (orig_clip) + DeleteObject (orig_clip); } /* w32 implementation of free_entity for font backend.