emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/src w32font.c


From: Jason Rumney
Subject: [Emacs-diffs] emacs/src w32font.c
Date: Thu, 04 Dec 2008 15:21:53 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Jason Rumney <jasonr>   08/12/04 15:21:53

Modified files:
        src            : w32font.c 

Log message:
        (w32font_draw): Initialize orig_clip before getting it, and delete it
        when finished.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/w32font.c?cvsroot=emacs&r1=1.58&r2=1.59

Patches:
Index: w32font.c
===================================================================
RCS file: /sources/emacs/emacs/src/w32font.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- w32font.c   27 Nov 2008 15:19:41 -0000      1.58
+++ w32font.c   4 Dec 2008 15:21:53 -0000       1.59
@@ -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);
-    }
+
+  if (orig_clip)
+    DeleteObject (orig_clip);
 }
 
 /* w32 implementation of free_entity for font backend.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]