Ich komme nicht hinterher. Ich dachte, im "NextGen"-Compiler ("IFDEF AUTOREFCOUNT") rufen nun sowohl Objekt- und Interface-Referenzen beide _AddRef und _Release auf. Sohingegen muss man sich
- Objekt-referenzierte Instanzen nicht mehr explizit freigeben
- Kann die gleiche Instanz lustig objekt- und interface-referenzieren ohne sich Sorgen zu machen
Wo läge denn der Sinn, zwei unterschiedliche Referenzzähler zu haben?
Eben es gibt nur einen Referenzzähler, aber es funktioniert andersherum (wie ein Blick in die Quellen zeigt)
Delphi-Quellcode:
function TInterfacedObject._AddRef: Integer;
begin
{$IFNDEF AUTOREFCOUNT}
Result := AtomicIncrement(FRefCount);
{$ELSE}
Result := __ObjAddRef;
{$ENDIF}
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)