Forum: Programmieren allgemein
by Chris55,
5. Okt 2020
Meinerseits nochmals ein wenig zusammengefasst:
Diesen Memory-Leak habe ich bei mir bemerkt, als ich mit TSingleton.GetInstance<T> gearbeitet habe.
Das TSingleton in Spring4D gibt die erzeugte T-Instanz auch wieder selbst frei.
Diese Freigabe funktioniert aber scheinbar nicht mehr, sobald ich in meiner Klasse T einen "class constructor" einbaue.
Die erste Frage ist, warum es nicht mehr...
Forum: Programmieren allgemein
by Chris55,
5. Okt 2020
Bei mir mit Delphi 10.1 mit Spring Release 1.2.2.
Auch im Delphi 10.4.1 mit der gleichen Springversion.
Der FastMM4 Stacktrace ist dieser hier:
--------------------------------2020/10/5 9:43:39--------------------------------
A memory block has been leaked. The size is: 12
This block was allocated by thread 0x5520, and the stack trace (return addresses) at the time was:
Forum: Programmieren allgemein
by Chris55,
5. Okt 2020
Am inherited liegt es nicht.
Der Code lässt sich auf Folgendes reduzieren und hierbei kommt es schon zum Memory Leak.
...
TMyClass2 = class(TObject)
public
class constructor Create();
end;
Forum: Programmieren allgemein
by Chris55,
5. Okt 2020
Hallo zusammen,
Im Rahmen eines Beispielprojekts habe ich das in Spring4D implementierte TSingleton demonstriert.
Ich hatte hierzu auch eine Klasse, wo ich testweise einen "class constructor" (also nicht den normalen Instanz-constructor) implementiert hatte,
da ich hier der Form wegen einen eigenen Demo-Referenzcounter initialisieren wollte.
Im Projekt habe ich FastMM4 aktiviert.
...