Hi,

I will address multiple previous e-mails on  this subject :)

1. FPC does perform reference counting if variable type is interface, but not if variable type is class that implements interface - legacy/compatibility reasons?

If you want to do ARC for objects - just remove this limitation and allow compiler to generate reference counting code not just for for interfaces but for classes that implement interface - AFAIK any interface in FPC/Delphi extends IUnknown and has reference counting methods.

2. I agree with Sven - adding reference counting to TObject is a bad idea

Please do not look at Delphi - they just follow Apple - and both companies do not address real issues with their development tool chains - it is all pure marketing.

In reality ARC and "weak" keyword do not magically solve the memory management issues - you either have GC or you do not have GC - there is no way around it.

I personally like TComponent approach - you have an object that owns other objects - as soon as this object dies - all children and grandchildren die too.

Combining it with ARC seems to me the way to go...

3. About "weak" attribute - current "strong" approach with interface reference has a contract - it is either nil or pointer to valid instance. If you mark interface reference as "weak" - how do you know whether this not nil reference is valid or not - I can be missing something here - please explain.

In Java weak reference is accessed through some intermediate object and you can this object whether the reference is gone or is still valid - but you need to have GC to do it...

Regards,
Gennady



_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to