Danke für die Antworten.
Wieso eigentlich inherited, es handelt sich ja nicht um einen Destruktor?
In diesem Fall ist das wirklich obsolet, da die Klasse direkt von TDataModule abgeleitet wurde. Kommt allerdings Formvererbung ins Spiel, werden in einem Eventhandler bei inherited auch die in der
DFM des Vorfahren verdrahteten Handler aufgerufen. Das ist zwar was völlig anderes als virtual/override, benutzt aber dasselbe Keyword.
Ich hab es entfernt.
Danke für den Hinweis.
Delphi-Quellcode:
TCallInstanceDictionary = class(TObjectDictionary<TCallID,TCallInstance>)
end;
TCallInstanceDictionary = class(TObjectDictionary<TCallID,TCallInstance>)
end;
..ist das ein Copy/Paste Fehler?
Ownerships:
http://docwiki.embarcadero.com/Libra...tionary.Create
Das erkärt noch nicht den Fehler. Das müßte MemoryLeaks erzeugen.
Ja, war ein Copy/Paste Fehler.
Ich bin noch einmal mit dem Debugger und F8 weiter rein.
Code:
//System.Classes
procedure TComponent.DestroyComponents;
var
Instance: TComponent;
begin
FreeAndNil(FSortedComponents);
while FComponents <> nil do
begin
Instance := FComponents.Last;
if (csFreeNotification in Instance.FComponentState)
or (FComponentState * [csDesigning, csInline] = [csDesigning, csInline]) then
RemoveComponent(Instance)
else
Remove(Instance);
Instance.DisposeOf; //////// Hier wird der Fehler ausgelöst
end;
end;
//SYSTEM.pas
procedure TObject.FreeInstance;
begin
CleanupInstance;
_FreeMem(Pointer(Self)); //////// hier wird angehalten, wenn ich die Option beim ausgelösten Fehler wähle
end;