<p>Link to Lazarus forum thread with reference counting discussion: <a href="http://forum.lazarus.freepascal.org/index.php/topic,22231.0.html">http://forum.lazarus.freepascal.org/index.php/topic,22231.0.html</a><br />My opinion: yes, this feature should be implemented.</p><p>And yes it should be optional (either additional root object or local compiler switch), so that existing code could remain unmodified.<br /><br /><br />20.09.2014, 19:00, "Hans-Peter Diettrich" <<a href="mailto:DrDiettrich1@aol.com">DrDiettrich1@aol.com</a>>:</p><blockquote>šSven Barth schrieb:<br /><blockquote>ššOn 20.09.2014 12:36, Hans-Peter Diettrich wrote:<br /><blockquote>ššAFAIK some Delphi XE made TObject itself managed, by reference counting.<br />ššIt would be easy to introduce the same feature in FPC, so that no<br />ššspecial base class would be required. Like with extended RTTI a decision<br />ššshould be made, whether managed objects should be enabled or disabled by<br />ššdefault. Afterwards automatic management can be turned on or off for<br />šševery single class or object individually.</blockquote>ššIt's basically easy, yes, but then one has to deal with code like this:</blockquote>š[...]<br /><blockquote>ššWhich could lead to some unintended side effects if "o" is passed to<br />ššsome other code which keeps the instance around and ".Free" merely<br />ššdecreases the reference count. Of course that would have been a memory<br />ššleak before and now it's not, but nevertheless it changes behavior.</blockquote>šI already mentioned that destructors still are required, but will have<br />šan different purpose and usage than before. This would discourage<br />šcontinued use of Destroy(), BeforeDestruction() etc., which should at<br />šleast be renamed to prevent unconverted legacy code from compiling. This<br />šchange already will break compatibilitiy, so that consequently all<br />šlibraries (in detail when dealing with lists containing objects) have to<br />šbe updated. I was aware of such consequences, but I'm no more sure of<br />šthe consequences of my idea of simply turning refcounting on or off for<br />šspecific objects or classes.<br /><br />šThe mere implementation of refcounting for TObject is easy, but the<br />šconsequences are hell :-(<br /><br />šDoDi<br /><br />š_______________________________________________<br />šfpc-devel maillist š- š<a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a><br />š<a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a></blockquote>