Sven Barth schrieb:
On 21.09.2014 21:09, Hans-Peter Diettrich wrote:
Sven Barth schrieb:
[...]
I'd add a _RefCount field to TObject, regardless of whether it's really
used later; this will fix the field offset - just like the VMT reference
is fixed in TObject, but not in Object types. This will eliminate
problems with class helpers.
I've especially written that it's not part of *every* objects, because
people complained about the size increase for all instances.
That's why I also suggested an compiler option, useful for all people
which care about program size or ARC at all.
In general I agree with your thoughts, I only wanted to add a few remarks.
[...]
Here the compiler would always insert _AddRef, just like with
interfaces, eventually optimized (inlined?) like:
if Result._RefCounter <> -1 then
Result._AddRef; //or InterlockedIncrement(Result._RefCounter);
And that's another thing: people complained about having that reference
count overhead for *all* assignments.
See above :-)
[...]
It. Was. Just. An. Example. To. Illustrate. The. Problem!
I would implement that differently as well, but there's *no* point to do
that inside an example that's supposed to be as simple as possible!
Is it me, or what else makes you so angry today?
Sorry for that :-(
Regards
DoDi
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel