Von Delphi zu Lazarus - Memory Leaks in DeCAL

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Aruvor
Beiträge: 3
Registriert: Fr 22. Jul 2022, 14:07

Von Delphi zu Lazarus - Memory Leaks in DeCAL

Beitrag von Aruvor »

Hallo,

Wir benutzen in einer Anwendung die Bibliothek DeCAL. Bisher haben wir alles in Delphi7 geschrieben und sind gerade dabei, dies auch in Lazarus zum Laufen zu bringen, erstmal für Windows.
In Lazarus kriege ich nun Memory Leaks. Ich fülle ein Objekt der Klasse DMap mit string-Variant-Paaren und gebe am Ende den Speicher mit clear frei.

Code: Alles auswählen

DMap.putPair([string, Variant]);
.
.
.
DMap.clear;
FreeAll([DMap]);
So wird der Speicher in Delphi freigegeben, in Lazarus aber nicht.
Falls jemand Erfahrung mit DeCAL in Lazarus hat, würde ich mich sehr auf Hilfe freuen.

Vielen Dank

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Von Delphi zu Lazarus - Memory Leaks in DeCAL

Beitrag von theo »

Meinst du das? https://sourceforge.net/projects/decal/

Kompiliert das überhaupt mit FPC?
Ich denke, das ist hier nicht so vielen bekannt.

S.a. https://wiki.freepascal.org/Data_Struct ... ollections

Aruvor
Beiträge: 3
Registriert: Fr 22. Jul 2022, 14:07

Re: Von Delphi zu Lazarus - Memory Leaks in DeCAL

Beitrag von Aruvor »

Ja, ich meine das. Aber wir haben eine Version für FPC und die läuft und kompiliert auch, nur der Memory Leak ist eben da.
Ich weiß nur, dass wir sie von dort haben:
https://svn.freepascal.org/svn/fpcproje ... trib/decal
Leider ist der Link nicht mehr erreichbar und woanders finde ich das nicht mehr.

Ist natürlich relativ nischig und wenn das hier nicht zufällig jemand kennt und/oder nutzt, dann komme ich wohl erstmal nicht weiter.

Eine Alternative, die in Delphi und Lazarus läuft, wäre auch eine Möglichkeit.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Von Delphi zu Lazarus - Memory Leaks in DeCAL

Beitrag von theo »

Aruvor hat geschrieben:
Di 26. Jul 2022, 10:49
Leider ist der Link nicht mehr erreichbar und woanders finde ich das nicht mehr.
Ohne den Sourcecode kann man zu dem Memory Leak natürlich nicht viel sagen.
Aruvor hat geschrieben:
Di 26. Jul 2022, 10:49
Eine Alternative, die in Delphi und Lazarus läuft, wäre auch eine Möglichkeit.
Hatte ich dir oben verlinkt: https://wiki.freepascal.org/Data_Struct ... ollections

Aruvor
Beiträge: 3
Registriert: Fr 22. Jul 2022, 14:07

Re: Von Delphi zu Lazarus - Memory Leaks in DeCAL

Beitrag von Aruvor »

Ja danke schon mal.
Hier wäre auf jeden Fall der Sourcecode.
Dateianhänge
LDecal.zip
(200.77 KiB) 66-mal heruntergeladen

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Von Delphi zu Lazarus - Memory Leaks in DeCAL

Beitrag von theo »

Im Source Code steht, dass Marco van de Voort damit zu tun hatte.
Der ist hier und im internationalen Forum User "marcov".
Im internationalen Forum sind die Chancen gut, den anzutreffen. Evtl. auch auf der Mailing List.
Er ist möglicherweise der Einzige, der sich damit auskennt.

ArchChem
Beiträge: 82
Registriert: Mo 11. Jul 2022, 10:41

Re: Von Delphi zu Lazarus - Memory Leaks in DeCAL

Beitrag von ArchChem »

Hallo,

nur als Idee, hast du mal dmap.free anstelle von dmap.clear probiert?
Die letzte Zeile auch evtl. mal weglassen, deren Bedeutung erschließt sich mir nicht.

Und wurde dmap auch initialisiert?

Viele Grüße!

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Von Delphi zu Lazarus - Memory Leaks in DeCAL

Beitrag von marcov »

theo hat geschrieben:
Mo 1. Aug 2022, 11:12
Im Source Code steht, dass Marco van de Voort damit zu tun hatte.
Der ist hier und im internationalen Forum User "marcov".
Im internationalen Forum sind die Chancen gut, den anzutreffen. Evtl. auch auf der Mailing List.
Er ist möglicherweise der Einzige, der sich damit auskennt.
Auch für mich ist Decal fast zwanzig Jahre her. Decal war damals (D6) auch nicht ganz stabil/memory safe. Kann aber ein Bug in meine eigene Code gewesen sein.

Decal verwendet intern auch interfaces, und interfaces funktionieren etwas anders in FPC. Das kann verborgene Bugs die man nicht spürt in Delphi sichtbar machen

Gibst es ein (komplettes) Beispiel das ich testen kann?

Antworten