Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!mailrus!ncar!tank!cps3xx!netnews.upenn.edu!scrolls.wharton.upenn.edu!lau From: lau@scrolls.wharton.upenn.edu (Yan K. Lau) Newsgroups: comp.windows.ms Subject: Re: Global memory loss under MS Windows. Keywords: MakeProcInstance, FreeProcInstance, global memory Message-ID: <17970@netnews.upenn.edu> Date: 12 Dec 89 14:17:24 GMT References: <33666@mirror.UUCP> Sender: news@netnews.upenn.edu Reply-To: lau@kings.wharton.upenn.edu (Yan K. Lau) Organization: A Private Heaven Lines: 36 In article <33666@mirror.UUCP> mguyott@prism.TMC.COM (Marc Guyott) writes: >Here is something that Jim Champeaux discovered here at Mirror Systems. I >am curious to learn if anyone else has experienced similar problems. > >The basic problem is that calling MakeProcInstance() when it is not needed >[even though Microsoft says it is OK but not necessary to call >MakeProcInstance() in our particular case] even with matching >FreeProcInstance() calls ends up slowly using up all of free memory. It I had a problem with Make/FreeProcInstance. I was running a timer that would bring up a pop-up every few minutes. The pop-up was very simple, just a message with an OK icon. The problem occurs if the user doesn't click on the OK before the next pop-up is due. Since only one pop-up message is correct, I didn't want to stack the pop-up windows (also it would run out of memory and crash if there were too many). So, I checked to see if there was already a pop-up displayed. If so, I sent the equivalent of a OK to that message first and then created the new pop-up. Debugging through the comm port, I found some very wierd behavior. It turns out that FreeProcInstance wasn't being executed when I signal the OK. Therefore, when the user clicked, *all* FreeProcInstances would execute in reverse order. I never had any code after the FreeProcInstance, so I don't know what would have been done next. On another memory problem, does anyone know the proper way to "zoom" graphics? I've tried telling windows that the physical dimensions of the display is twice (for example) what it actually is and changing the origin. This works to some extent but eventually things mess up. For instance, some arcs will not appear, or they will appear but be thicker than they should be. Eventually, the program will crash. Any ideas? Yan. )~ Yan K. Lau lau@kings.wharton.upenn.edu The Wharton School ~/~ 128.91.11.233 University of Pennsylvania /\ Darker grows the moon And shadows steal across the prison of my room