Zitat von
ozz:
Ich dachte, ich gebe das Object an einer anderen Stelle schon frei. Finden konnte ich es bisher noch nicht. Kann es noch etwas anderes sein?
Auf die Schnelle überlegt: Eigentlich nicht.
In jedem Falle sollte dein TStreamlist-Destruktor die Liste FStreamObjectList
selbst überhaupt auch mal freigeben. Diese Anforderung, gemeinsam mit der Tatsache, dass OwnsObjects TRUE ist, sollte folgendes ausreichen lassen:
Delphi-Quellcode:
destructor TStreamlist.destroy;
begin
FStreamObjectList.Free;
inherited Destroy;
end;
Ob dabei jettz noch der Fehler auftaucht, musst du mal gucken. Vielleicht ist die Auto-Freigabe der Liste auch so schlau und ignoriert irgendwie tote Referenzen (z.B. durch Abfangen der Execption). Das weiß ich jetzt nicht.
Zitat von
ozz:
@Jelly
Du hast natürich Recht. Kleiner Schnitzer.
Soooo natürlich ist das nun auch wieder nicht. Warum sollte eine Ableitung einer Liste nicht noch eine weitere Liste besitzen?
Aber wenn
das jetzt geändert wurde, sieht die Geschichte ja völlig anders aus.
@ozz
Du solltest nochmal den jetzt aktuellen Code einstellen.