help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: [h-e-w] Emacs Resource (GDI) Leak on Windows


From: Andrew Maguire
Subject: Re: [h-e-w] Emacs Resource (GDI) Leak on Windows
Date: Fri, 03 Feb 2006 15:51:06 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

This GDI leakage is still an issue - Emacs 21.2/3

It appears to be directly related to the display of any modified fonts, italic, bold etc.

For examnple,

1. start up a completely plain Emacs --no-site-file.
2. Run Windows Task Manager and set it to display GDI object usage.
3. M-x list-faces-display
4. SCroll the buffer up and down a lot and GDI object count increases.
5. Make the *Faces* buffer editable and remove all lines whose font is
   not simply a modified foreground a background colour, i.e. italic
   bold, fixed-pitch, variable-pitch, mode-line and tool-bar.
6. Repeat scrolling up and down to force redisplay of the screen
   and not that although the GDI count may go up by 1 or 2 after you
   stop scrolling the extra GDI resource is released leaving with the
   same number as before.

The GDI usage is also directly related to the font used also.
By default Emacs, uses Courier New, Regular, 10pt.
If you remove all the modified fonts above except italic.
Then you will find that GDI objects will leak if Courier New is used
but NOT if Courier is used.
It appears to be related to the method Emacs uses to generate these modified forms of the main font.

Courier New apears to be a TrueType font but Courier is not - whether that has any difference I am not sure.

I hope these observations will be able to help find a fix for this problem. It is a particular pain for Modes using font-lock when font-lock is configured to use bold and italic fonts.

As has been mentioned before in this thread, the GDI object resource is a strictly limited resource on Windows and when Windows approaches that limit the display code Windows uses to update the screen goes haywire, often blatting screen data in the top left portion of the screen.

Andrew Maguire





reply via email to

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