Gar nicht, das macht der interface-referenzierte Speicherwächter.
Beispiel:
Delphi-Quellcode:
procedure noMemLeakHere();
var
memGuard: IMemGuard;
myLocalObject: TObject;
begin
myLocalObject := TObject.Create();
TMemGuard.Guard(memGuard, myLocalObject);
// Wilde Dinge geschehen jetzt...
// Wilde Dinge enden jetzt...
end;
Wenn eine
Exception auftritt wird geht der Referenzzähler von memGuard auf Null und er wird abgeräumt. Und in seinem Destruktor zerstört er auch
myLocalObject
.
Schau dir das Video am besten mal an, ist Schritt für Schritt super erklärt