[lazarus] Memleak caused by gtk keyboard tables

Vincent Snijders vslist at zonnet.nl
Fri Oct 24 08:30:05 EDT 2003


Hi,

Lazarus has some memleaks caused by the keyboard tables. I have tried to
look into it, but it looks a bit to complicated to me. It is probably 
not a critical bug. This table seems to be set up at application start,
used during the lifetime of the application, but is not (completely)
freed at the end. See heaptrc at the end of this mail for some details.

An other thing I noticed, is the comment with TGTKObject.AppInit.
  (is called by TApplication.Initialize which is typically after all
   finalization sections)
I don't understand this. What finalization sections are meant?

A third thing: The text in the BuildLazarusDialog is unreadable, because
text and backgroud are black. Has anybody else noticed this?

Regards,
Vincent Snijders.

The heaptrc log is:
Heap dump by heaptrc unit
1248669 memory blocks allocated : 63022566/65816648
1248664 memory blocks freed     : 63018982/65813064
5 unfreed memory blocks : 3584
True heap size : 24117248 (8240 used in System startup)
True free heap : 24105104
Should be : 24105184
Call trace for block 0x405E4EE4 size 512
  0x082B45CA  KEYSYMTOVKEYARRAY,  line 1249 of gtkproc.inc
  0x082B55EE  INITKEYBOARDTABLES,  line 1854 of gtkproc.inc
  0x0830B293  TGTKOBJECT__APPINIT,  line 1472 of gtkobject.inc
  0x082D781F  TAPPLICATION__INITIALIZE,  line 220 of
./include/application.inc  0x08361968  main,  line 62 of lazarus.pp
  0x08052A57
Call trace for block 0x405E4CA4 size 512
  0x082B45CA  KEYSYMTOVKEYARRAY,  line 1249 of gtkproc.inc
  0x082B55EE  INITKEYBOARDTABLES,  line 1854 of gtkproc.inc
  0x0830B293  TGTKOBJECT__APPINIT,  line 1472 of gtkobject.inc
  0x082D781F  TAPPLICATION__INITIALIZE,  line 220 of
./include/application.inc  0x08361968  main,  line 62 of lazarus.pp
  0x08052A57
Call trace for block 0x405E4A64 size 512
  0x082B45CA  KEYSYMTOVKEYARRAY,  line 1249 of gtkproc.inc
  0x082B55EE  INITKEYBOARDTABLES,  line 1854 of gtkproc.inc
  0x0830B293  TGTKOBJECT__APPINIT,  line 1472 of gtkobject.inc
  0x082D781F  TAPPLICATION__INITIALIZE,  line 220 of
./include/application.inc  0x08361968  main,  line 62 of lazarus.pp
  0x08052A57
Call trace for block 0x405E4624 size 1024
  0x082B4574  KEYSYMTOVKEYARRAY,  line 1239 of gtkproc.inc
  0x082B55EE  INITKEYBOARDTABLES,  line 1854 of gtkproc.inc
  0x0830B293  TGTKOBJECT__APPINIT,  line 1472 of gtkobject.inc
  0x082D781F  TAPPLICATION__INITIALIZE,  line 220 of
./include/application.inc  0x08361968  main,  line 62 of lazarus.pp
  0x08052A57
Call trace for block 0x405E41E4 size 1024
  0x082B451A  KEYSYMTOVKEYARRAY,  line 1229 of gtkproc.inc
  0x082B55EE  INITKEYBOARDTABLES,  line 1854 of gtkproc.inc
  0x0830B293  TGTKOBJECT__APPINIT,  line 1472 of gtkobject.inc
  0x082D781F  TAPPLICATION__INITIALIZE,  line 220 of
./include/application.inc  0x08361968  main,  line 62 of lazarus.pp
  0x08052A57

Regards,
Vincent Snijders






More information about the Lazarus mailing list