| delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
| From: | "Artur Pendzich" <apendzich AT wytnijplusnet DOT pl> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: unload_datafile() |
| Date: | Wed, 22 Sep 2004 13:28:10 +0200 |
| Organization: | tp.internet - http://www.tpi.pl/ |
| Lines: | 70 |
| Message-ID: | <opsep7g80nzsx1fw@froggy> |
| References: | <opsep0qci3zsx1fw AT froggy> |
| NNTP-Posting-Host: | 80.51.254.226 |
| Mime-Version: | 1.0 |
| X-Trace: | nemesis.news.tpi.pl 1095852933 25416 80.51.254.226 (22 Sep 2004 11:35:33 GMT) |
| X-Complaints-To: | usenet AT tpi DOT pl |
| NNTP-Posting-Date: | Wed, 22 Sep 2004 11:35:33 +0000 (UTC) |
| User-Agent: | Opera M2/7.54 (Win32, build 3865) |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
Dnia Wed, 22 Sep 2004 11:02:26 +0200, Artur Pendzich
<apendzich AT wytnijplusnet DOT pl> napisał:
> HI!
>
> I have problem with freeing memory in my program.
>
> This is a piece of my programm.
>
> void unload_all(void)
> {
> unload_datafile(datafile)
> if (game1)
> {
> free(cards);
> free(table);
> unload_datafile(wondata);
> destroy_bitmap(bmp1);
> destroy_bitmap(bmp2);
> }
> else
> {
> unload_datafile(supdata);
> destroy_bitmap(belt1);
> destroy_bitmap(belt2);
> }
> destroy_bitmap(bmp_auto);
> }
> (...)
>
> int client_reaction(void)
> {
> ...
> switch(a)
> {
> ...
> case KEY_Z:
> {
> physmem1 = _go32_dpmi_remaining_physical_memory();
> virtmem1 = _go32_dpmi_remaining_virtual_memory();
> unload_all();
> physmem2 = _go32_dpmi_remaining_physical_memory();
> virtmem2 = _go32_dpmi_remaining_virtual_memory();
> }
> ...
> }
>
> After calling function unload_all() variables physmemx and virtmemx
> shows that there is the same amount of reamining memory. Why?
ok, I have red djgpp faq (15.2) and I know why _go32_dpmi_remain...
indicates the same values, but..
> I load several datafiles, create some bitmaps and then unload them from
> memory using unload_all. After it I load next set of datafiles and
> bitmaps and once again unload them.
> After several loops I have not enought memory to load datafile and in
> finction load_datafile() program freezes.
system doesn't see freed memory but cwsdpmi should see it. So why program
hangs after several load-unload sequences in load_datafile function?
One more problem:
even after reeboot go32_v2 answers : descriptors exhausted.
Do someone knows why?
Thanks
Artur Pendzich
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |