On Wed, 10 Nov 2010, Graeme Geldenhuys wrote:
Hi, Attached is a simple console application that outputs a hierarchy of log information. Under Delphi 7 we used to use a TInterfacedObject descendant to track the call stack. This same trick was very handy for changing and restoring the mouse cursor too. When you create an instance it logs entry information, and increased the indentation level. When that interface instance went out of scope in decreased the indentation level and logs exit information. Unfortunately this doesn't have the same affect under FPC (tested with Windows and Linux). The problem is that under FPC, the Interface instances immediately goes out of scope. It seems Delphi held on to that instance even though you did not store it in a variable. Once the current procedure/method is complete, then only the Interface instance went out of scope.
It depends. You're not supposed to make assumptions on when an interface goes out of scope. If you search the archives, you'll find multiple threads about this, where Jonas (with his legendary patience) explained to people why this assumption is false, and that indeed FPC is not compatible to Delphi in this regard, and that this will not be changed. Michael. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel