> I've fixed some warnings. You haven't recompiled libgag with -g so I can't 
> really fix the warnings there. Yet I think I've fixed all other warnings and 
> leaks.

I have done: cvs update and put the -g in libgag/src/Makefile
Here's the new valgrind output:

==5593== Memcheck, a memory error detector.
==5593== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==5593== Using LibVEX rev 1658, a library for dynamic binary translation.
==5593== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==5593== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==5593== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==5593== For more details, rerun with: -v
==5593== 
==5593== My PID = 5593, parent PID = 4103.  Prog and args are:
==5593==    src/glob2
==5593== 
==5593== Conditional jump or move depends on uninitialised value(s)
==5593==    at 0x400A1DB: _dl_relocate_object (in /lib64/ld-2.5.so)
==5593==    by 0x4003780: dl_main (in /lib64/ld-2.5.so)
==5593==    by 0x4012779: _dl_sysdep_start (in /lib64/ld-2.5.so)
==5593==    by 0x4001362: _dl_start (in /lib64/ld-2.5.so)
==5593==    by 0x4000B87: (within /lib64/ld-2.5.so)
==5593== 
==5593== Conditional jump or move depends on uninitialised value(s)
==5593==    at 0x400A1E4: _dl_relocate_object (in /lib64/ld-2.5.so)
==5593==    by 0x4003780: dl_main (in /lib64/ld-2.5.so)
==5593==    by 0x4012779: _dl_sysdep_start (in /lib64/ld-2.5.so)
==5593==    by 0x4001362: _dl_start (in /lib64/ld-2.5.so)
==5593==    by 0x4000B87: (within /lib64/ld-2.5.so)
==5593== 
==5593== Conditional jump or move depends on uninitialised value(s)
==5593==    at 0x400A1DB: _dl_relocate_object (in /lib64/ld-2.5.so)
==5593==    by 0x4003888: dl_main (in /lib64/ld-2.5.so)
==5593==    by 0x4012779: _dl_sysdep_start (in /lib64/ld-2.5.so)
==5593==    by 0x4001362: _dl_start (in /lib64/ld-2.5.so)
==5593==    by 0x4000B87: (within /lib64/ld-2.5.so)
==5593== 
==5593== Conditional jump or move depends on uninitialised value(s)
==5593==    at 0x400A1E4: _dl_relocate_object (in /lib64/ld-2.5.so)
==5593==    by 0x4003888: dl_main (in /lib64/ld-2.5.so)
==5593==    by 0x4012779: _dl_sysdep_start (in /lib64/ld-2.5.so)
==5593==    by 0x4001362: _dl_start (in /lib64/ld-2.5.so)
==5593==    by 0x4000B87: (within /lib64/ld-2.5.so)
==5593== 
==5593== Conditional jump or move depends on uninitialised value(s)
==5593==    at 0x400A1DB: _dl_relocate_object (in /lib64/ld-2.5.so)
==5593==    by 0x40107D9: dl_open_worker (in /lib64/ld-2.5.so)
==5593==    by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so)
==5593==    by 0x40101B6: _dl_open (in /lib64/ld-2.5.so)
==5593==    by 0x63191D9: (within /lib64/libdl-2.5.so)
==5593==    by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so)
==5593==    by 0x631955C: (within /lib64/libdl-2.5.so)
==5593==    by 0x6319151: dlopen (in /lib64/libdl-2.5.so)
==5593==    by 0x509842A: SDL_LoadObject (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x509B900: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x50AA1B5: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x5094D87: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593== 
==5593== Conditional jump or move depends on uninitialised value(s)
==5593==    at 0x400A40B: _dl_relocate_object (in /lib64/ld-2.5.so)
==5593==    by 0x40107D9: dl_open_worker (in /lib64/ld-2.5.so)
==5593==    by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so)
==5593==    by 0x40101B6: _dl_open (in /lib64/ld-2.5.so)
==5593==    by 0x63191D9: (within /lib64/libdl-2.5.so)
==5593==    by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so)
==5593==    by 0x631955C: (within /lib64/libdl-2.5.so)
==5593==    by 0x6319151: dlopen (in /lib64/libdl-2.5.so)
==5593==    by 0x509842A: SDL_LoadObject (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x509B900: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x50AA1B5: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x5094D87: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593== 
==5593== Conditional jump or move depends on uninitialised value(s)
==5593==    at 0x400A306: _dl_relocate_object (in /lib64/ld-2.5.so)
==5593==    by 0x40107D9: dl_open_worker (in /lib64/ld-2.5.so)
==5593==    by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so)
==5593==    by 0x40101B6: _dl_open (in /lib64/ld-2.5.so)
==5593==    by 0x63191D9: (within /lib64/libdl-2.5.so)
==5593==    by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so)
==5593==    by 0x631955C: (within /lib64/libdl-2.5.so)
==5593==    by 0x6319151: dlopen (in /lib64/libdl-2.5.so)
==5593==    by 0x509842A: SDL_LoadObject (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x509B900: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x50AA1B5: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x5094D87: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593== 
==5593== Syscall param write(buf) points to uninitialised byte(s)
==5593==    at 0x51E2CA0: __write_nocancel (in /lib64/libpthread-2.5.so)
==5593==    by 0x5F3C9EE: (within /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F312EE: (within /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F313E0: _XReply (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F1929D: XInternAtom (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x50AACD9: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x50A95D5: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x50AA463: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x5094C95: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x506A9F7: SDL_InitSubSystem (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x506AA1E: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x61DBA3: GAGCore::GraphicContext::GraphicContext(int, int, 
unsigned) (GraphicContext.cpp:1746)
==5593==  Address 0x717E19E is 14 bytes inside a block of size 16,384 alloc'd
==5593==    at 0x4A1FFC6: calloc (in 
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==5593==    by 0x5F1EA54: XOpenDisplay (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x50AA244: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x5094C95: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x506A9F7: SDL_InitSubSystem (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x506AA1E: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x61DBA3: GAGCore::GraphicContext::GraphicContext(int, int, 
unsigned) (GraphicContext.cpp:1746)
==5593==    by 0x62996F: GAGCore::Toolkit::initGraphic(int, int, unsigned) 
(Toolkit.cpp:51)
==5593==    by 0x4E6720: GlobalContainer::load() (GlobalContainer.cpp:432)
==5593==    by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246)
==5593==    by 0x4E5A00: main (Glob2.cpp:435)
==5593== 
==5593== Syscall param write(buf) points to uninitialised byte(s)
==5593==    at 0x51E2CDB: (within /lib64/libpthread-2.5.so)
==5593==    by 0x5F3C9EE: (within /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F312EE: (within /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F313E0: _XReply (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F2B568: XSync (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x50A8327: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x50A9EA6: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x509396E: SDL_SetVideoMode (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x61B617: GAGCore::GraphicContext::setRes(int, int, unsigned) 
(GraphicContext.cpp:1810)
==5593==    by 0x61DC02: GAGCore::GraphicContext::GraphicContext(int, int, 
unsigned) (GraphicContext.cpp:1762)
==5593==    by 0x62996F: GAGCore::Toolkit::initGraphic(int, int, unsigned) 
(Toolkit.cpp:51)
==5593==    by 0x4E6720: GlobalContainer::load() (GlobalContainer.cpp:432)
==5593==  Address 0x7184063 is 19 bytes inside a block of size 16,384 alloc'd
==5593==    at 0x4A1FFC6: calloc (in 
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==5593==    by 0x5F1EA54: XOpenDisplay (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x50AA261: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x5094C95: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x506A9F7: SDL_InitSubSystem (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x506AA1E: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x61DBA3: GAGCore::GraphicContext::GraphicContext(int, int, 
unsigned) (GraphicContext.cpp:1746)
==5593==    by 0x62996F: GAGCore::Toolkit::initGraphic(int, int, unsigned) 
(Toolkit.cpp:51)
==5593==    by 0x4E6720: GlobalContainer::load() (GlobalContainer.cpp:432)
==5593==    by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246)
==5593==    by 0x4E5A00: main (Glob2.cpp:435)
==5593== 
==5593== ERROR SUMMARY: 9778 errors from 9 contexts (suppressed: 0 from 0)
==5593== malloc/free: in use at exit: 253,553 bytes in 558 blocks.
==5593== malloc/free: 545,283 allocs, 544,725 frees, 312,647,959 bytes 
allocated.
==5593== For counts of detected errors, rerun with: -v
==5593== searching for pointers to 558 not-freed blocks.
==5593== checked 775,640 bytes.
==5593== 
==5593== 
==5593== 12 bytes in 2 blocks are definitely lost in loss record 5 of 43
==5593==    at 0x4A2214E: malloc (in 
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==5593==    by 0x5F65A1A: (within /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F66025: _XimSetICValueData (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F5B437: _XimLocalCreateIC (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x5F4430C: XCreateIC (in /usr/lib64/libX11.so.6.2.0)
==5593==    by 0x50A9733: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x50AA463: (within /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x5094C95: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x506A9F7: SDL_InitSubSystem (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x506AA1E: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.11.0)
==5593==    by 0x61DBA3: GAGCore::GraphicContext::GraphicContext(int, int, 
unsigned) (GraphicContext.cpp:1746)
==5593==    by 0x62996F: GAGCore::Toolkit::initGraphic(int, int, unsigned) 
(Toolkit.cpp:51)
==5593== 
==5593== 
==5593== 16 bytes in 1 blocks are definitely lost in loss record 8 of 43
==5593==    at 0x4A21B5C: operator new(unsigned long) (in 
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==5593==    by 0x627602: GAGCore::FileManager::openInputStreamBackend(char 
const*) (FileManager.cpp:237)
==5593==    by 0x6150EF: UnitsSkins::UnitsSkins() (UnitsSkins.cpp:31)
==5593==    by 0x4E6B85: GlobalContainer::load() (GlobalContainer.cpp:504)
==5593==    by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246)
==5593==    by 0x4E5A00: main (Glob2.cpp:435)
==5593== 
==5593== 
==5593== 220,056 bytes in 159 blocks are definitely lost in loss record 43 of 43
==5593==    at 0x4A2214E: malloc (in 
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==5593==    by 0x653276F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.8)
==5593==    by 0x6536272: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.8)
==5593==    by 0x6536A7A: ft_mem_qrealloc (in /usr/lib64/libfreetype.so.6.3.8)
==5593==    by 0x6536B5A: ft_mem_realloc (in /usr/lib64/libfreetype.so.6.3.8)
==5593==    by 0x658134E: (within /usr/lib64/libfreetype.so.6.3.8)
==5593==    by 0x65839BA: (within /usr/lib64/libfreetype.so.6.3.8)
==5593==    by 0x6535F61: FT_Load_Glyph (in /usr/lib64/libfreetype.so.6.3.8)
==5593==    by 0x55118F8: (within /usr/lib64/libSDL_ttf-2.0.so.0.6.2)
==5593==    by 0x5512FD8: TTF_RenderUNICODE_Blended (in 
/usr/lib64/libSDL_ttf-2.0.so.0.6.2)
==5593==    by 0x55133C0: TTF_RenderUTF8_Blended (in 
/usr/lib64/libSDL_ttf-2.0.so.0.6.2)
==5593==    by 0x64F4AB: GAGCore::TrueTypeFont::getStringCached(char const*) 
(TrueTypeFont.cpp:183)
==5593== 
==5593== LEAK SUMMARY:
==5593==    definitely lost: 220,084 bytes in 162 blocks.
==5593==      possibly lost: 0 bytes in 0 blocks.
==5593==    still reachable: 33,469 bytes in 396 blocks.
==5593==         suppressed: 0 bytes in 0 blocks.
==5593== Reachable blocks (those to which a pointer was found) are not shown.
==5593== To see them, rerun with: --show-reachable=yes

ps:  I still get the segmentation fault when quiting glob2 games without
using valgrind.

pps: the endgame statistics for buildings are wrong, because flags
count as buildings.

-- 
Kai Antweiler
_______________________________________________
glob2-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/glob2-devel

Reply via email to