Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2000:
[Freeciv-Dev] Re: Memory leak (PR#605)
Home

[Freeciv-Dev] Re: Memory leak (PR#605)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Thue <thue@xxxxxxx>
Cc: guenther.berger@xxxxxxxxxxxxxxxxx, freeciv-dev@xxxxxxxxxxx, bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Memory leak (PR#605)
From: Andreas Kemnade <akemnade@xxxxxxxxxxx>
Date: Fri, 17 Nov 2000 14:35:46 +0100 (CET)

Thue writes:
 > 
 > On Fri, 17 Nov 2000 12:36:09 guenther.berger@xxxxxxxxxxxxxxxxx wrote:
 > > Full_Name: Günther Berger
 > > Version: 1.10.+
 > > Distribution: Windows binary
 > > Client: Gtk+
 > > OS: Windows NT
 > > Submission from: (NULL) (194.107.184.220)
 > > 
 > > 
 > > My comment to bugs no. 487, 488, 549
 > > 
 > > I've discovered that the memory that is allocated per second (4-8 KB)
 > > comes from
 > > the blinking of the active unit. When no unit blinks, the memory usage
 > > doesn't
 > > increase.
 > > As far as I know is that the Win32 Clients are built from the same code
 > > base and
 > > the bug only occurs in the Win32 Client. I've only tested the version
 > > that
 > > doesn't require an X-server, but uses GTK-Win32-port.
 > > I believe that the memory leak is inside the GTK-libs and not in the
 > > Freeciv-client.
 > 
 > That would then mean the link is in the tile redraw code.
 > 
The leak seems to be in pixmap_put_tile but the bug seems to be in gdk
code. 
In the windows binary archive (without X) there is a diff named
freeciv-1.11.4-win.diff.gz (50kB unpacked). Windows binaries without X
and with X are not built from the same source code. As long as the
networking abstraction layer is not in cvs, porting the gtk gui code
changes to cvs is nonsense. 

The struct Sprite is different. The source sprites are also stored and
the cropped pixmaps are created by crop_sprite_real. They are only
allocated if they are really needed because windows cannot maintain
many bitmaps. pixmap_put_tile uses the source
sprites.
That code works on linux without a memory leak. So I think the bug
is in gdk, too. 

I have a native windows client (without gtk).
It already has:
   a working map window with units blinking (no memory leak)
   a connect dialog.
   a working menu.
   a message window (append_output_window works)

The other dialogs are missing.
It is much faster than the gtk client (esp. scrolling the map).
It works fine with wine (tested with Wine release 20000109 on linux)
and win95. I have not tested it on other windows versions.

When it is a bit more complete I will release test versions and a port
to cvs.

Greetings
Andreas Kemnade



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