ARC ist "aktuell" nur in den mobilen Platformen aktiv, also iOS und Android.
Aber wie der Name schon sagt, gibt da die Speicherverwaltung alles von selber frei, wenn keine Variable mehr auf das Objekt zeigt ... genauso wie es schon immer bei Interfaces der Fall ist.
Hat nur das "Problem" wenn man etwas wirklich genau an der Stelle freigeben will, da muß man dann eben bissl aufpassen, dass alle Variablen genilt werden,
oder
TObject.Release.
Meine (unprofessionelle) Fehlerbehebung sähe dann erstmal so aus:
In die eigene
Unit kommt am Anfang ein {$UNDEF AUTOREFCOUNT} rein und/oder eventeull in der
DPR des Programmes.
Klar muss man vorher schauen, ob und ggfls. welche Nebenwirkungen man damit verursacht, also mal schauen, wo überall AUTOREFCOUNT abgefragt wird.
NEIN.
Das ist erstens ein Compiler-Feature-Define, welches das angibt, was der Compiler macht und nichts was der Entwickler steuern kann/soll.
http://geheimniswelten.de/sonstiges/...piler/#Defines
Also egal ob du es umschreibst, der Compiler bleibt bei seinem Verhalten.
Und das Free interessiert
deine Definition sowas von garnicht, da die System.pas erstens nicht neu kompiliert wird und zweitens kommt dein UNDEF dort garnicht an.