[fpc-devel] Suggestion: reference counted objects

Sven Barth pascaldragon at googlemail.com
Sat Sep 27 15:34:43 CEST 2014

On 25.09.2014 20:13, Chriss Kalogeropoulos wrote:
> Hi again,
> How would you handle the case of a user adding an interface on a class
> marked as reference counted (like a tstringlist descendant,
> TArcStringList) and then inherits from that and implements the IUnknown
> TFooStringlist =class (TArcStringlist, IInterface).

When one adds an interface to a class that doesn't yet support 
interfaces then you need to implement the IUnknown methods which you can 
reroute to the refcount methods of TObject then (TObject will have non 
virtual methods for manual reference counting that are active if the 
instance is a reference counted one). If a parent class already 
introduced interfaces (e.g. TComponent) then it's upon the implementor 
to decide whether he/she wants to route the interface reference counting 
to the ARC one or just keep it disabled like TComponent does.

> Will he be able to hook on the addref and release methods of the arc
> object ? Or at the least use the refcount variable? Will it be done
> automatically by the compiler (by using the same method names maybe) ?

The compiler won't do anything automatic here precisely for the reason 
that then one needs a way to prevent this automatisms.


More information about the fpc-devel mailing list