On Fri, 29 Jun 2018 16:18:04 +0200 (CEST) Michael Van Canneyt <mich...@freepascal.org> wrote:
> On Fri, 29 Jun 2018, Michael Van Canneyt wrote: > > > > > > > On Fri, 29 Jun 2018, Martok wrote: > > > >> Am 29.06.2018 um 14:41 schrieb Michael Van Canneyt: > >>> As far as I can see, you get 2 chain and 1 done call. Which is what I'd > > expect. > >>> The overrides of the _* calls are useless, since they are not virtual in > >>> TInterfacedObject and hence never called. So that's OK too. > >> Interface functions are always virtual and implemented by the actually > >> instantiated class. > > > The "override" keyword is neither allowed nor needed, this > >> code does what it looks like. > >> > >> The expected output would be 3 Addrefs and 3 Releases. > > > > I don't get that. > > Pressed send too quickly. > > home:~> ./tirc > Chain: 00007FA5948CF040 > Chain: 00007FA5948CF040 > Done: 00007FA5948CF040 "stdcall" is wrong for Linux. It must be {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; Then you get under Linux: Addref: 00007F0B935BF040 Refcount: 1 at 000000000041331A Addref: 00007F0B935BF040 Refcount: 2 at 00000000004121F2 Release: 00007F0B935BF040 Refcount: 2 at 0000000000412196 Chain: 00007F0B935BF040 Addref: 00007F0B935BF040 Refcount: 2 at 000000000041331A Addref: 00007F0B935BF040 Refcount: 3 at 00000000004121F2 Release: 00007F0B935BF040 Refcount: 3 at 0000000000412196 Chain: 00007F0B935BF040 Addref: 00007F0B935BF040 Refcount: 3 at 000000000041331A Addref: 00007F0B935BF040 Refcount: 4 at 00000000004121F2 Release: 00007F0B935BF040 Refcount: 4 at 0000000000412196 Done: 00007F0B935BF040 fin Release: 00007F0B935BF040 Refcount: 3 at 0000000000412196 Release: 00007F0B935BF040 Refcount: 2 at 0000000000412196 Release: 00007F0B935BF040 Refcount: 1 at 0000000000412196 Mattias _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel