Forum: Object-Pascal / Delphi-Language
by BastiFantasti,
4. Jun 2020
Also ich nehme alles zurück und behaupte das Gegenteil :-)
Mit dem FreeAndNil scheint es jetzt gerade zu funktionieren.
Evtl. hatte ich es vorher nicht komplett neu kompiliert oder wie auch immer.
Forum: Object-Pascal / Delphi-Language
by BastiFantasti,
4. Jun 2020
was genau besagt dieses FOwned Eigenschaft?
Vor dem Aufruf
JsonValue := TJSonObject.ParseJSONValue(JsonString);
ist die JsonValue Variable nicht nil sonder schon vorhanden mit der Eigenschaft FOwned = False
im nächsten Schritt ist das Objekt an sich unverändert, jedoch steht FOwned = True drin...
Forum: Object-Pascal / Delphi-Language
by BastiFantasti,
4. Jun 2020
ich hatte es mit .free drin.
FastMM hat aber dennoch ordentlich Leaks rausgeschrieben.
Ich teste nochmal
und ja, die destroy Methode rufe ich normal nicht direkt auf.
Normal FreeAndNil
Update:
Forum: Object-Pascal / Delphi-Language
by BastiFantasti,
4. Jun 2020
allein das Json Objekt Freizugeben bringt nichts.
Hab ich auch schon versucht.
Delphi macht da intern so viele Unterobjekte (je nach Datenstruktur) und gibt die Teile aber nicht geregelt wieder frei wenn ich die JsonValue Variable freigebe.
JsonValue.free hatte ich drin, die Leaks waren dennoch da.
Forum: Object-Pascal / Delphi-Language
by BastiFantasti,
4. Jun 2020
Hallo zusammen,
es liegt schon an der Delphi Implementierung des JSON Parsers.
Ich habe gerade das gleiche Problem. Ich polle eine REST Schnittstelle von Delphi aus, die mir einen JSON String zurück liefert. Nach kurzer Zeit bekomme ich die Meldung das der Speicher voll ist.
Ich versuche ein einfaches Beispielprogramm zu erstellen und stelle es hier ein.
Viele Grüße
Bastian