[fpc-devel] Suggestion: reference counted objects
pascaldragon at googlemail.com
Sat Sep 27 16:14:21 CEST 2014
On 27.09.2014 16:06, Hans-Peter Diettrich wrote:
> Sven Barth schrieb:
>> There are however some nasty problems inside constructors and
>> destructors, because "Self" is reference counted as well (and should
>> be after all as we don't want the instance to be destroyed behind our
>> backs suddenly).
> IMO before the end of a constructor, and before the start of an
> destructor, no references to the object exist at all, so that code
> outside these methods has no reference that could cause trouble.
The problem is that a destructor can call other methods which might take
the object reference as a parameter and each such passing will have
calls to the reference counting again. So there needs to be a way to
avoid infinite calling of the destructor. (I fixed this for now by
simply disabling reference counting with a -1 reference count when the
destructor is called by the reference count decrease helper).
> It looks to me like inside methods Self doesn't deserve refcounting,
> because a method can be invoked only with an existing instance, which
> will stay alive at least until the call returns.
That's the thing I'm not yet entirely sure about. Though disabling it
for Self would definitely simplyfy things. I'll simply give it a try and
then my constructor problems should hopefully be solved as well...
More information about the fpc-devel