View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006148||JEDI VCL||00 JVCL Components||public||2013-06-11 11:28||2013-06-12 19:25|
|Product Version||Daily / GIT|
|Target Version||Fixed in Version|
|Summary||0006148: Memory Leak on JvSegmentedLEDDisplay|
The only inclusion of this unit in the "uses" list of a "unit form" it's sufficient for having a memory leak !
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):
13 - 20 bytes: TIntConst x 1
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x189C, and the stack trace (return addresses) at the time was:
77AD9EF2 [Unknown function at RtlInitializeExceptionChain]
77AD9EC5 [Unknown function at RtlInitializeExceptionChain]
The block is currently used for an object of class: TIntConst
The allocation number is: 1459
|Additional Information||Simple test :|
1) Create a new project and put a TJvSegmentedLEDDisplay on the form1.
Run it, close the app and you have the memory leak.
2) Remove the component TJvSegmentedLEDDisplay (don't remove the uses).
Run it, close the app and you have the memory leak without the component !!
3) remove from the "uses" JvSegmentedLEDDisplay
Run it, close the app all good
|Tags||No tags attached.|
This is a Delphi RTL bug that was fixed in XE2.
If the Color-Int is unregister by calling Classes.UnregisterIntegerConsts then memory leaks. If it is not unregistered then the Classes.FreeIntConstList function will release the memory when the application terminates. But not unregistering the Color-Int from JvSegmentedLEDDisplay would mean that the JVCL's runtime package (and so the IDE) become instable if the JVCL package is unloaded.