[fpc-devel] Managed Types, Undefined Bhaviour
Michael Van Canneyt
michael at freepascal.org
Fri Jun 29 16:18:04 CEST 2018
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
fin
is the complete output. So either your explanation is wrong, or the compiler
completely faulty.
Compiling with memleak detection:
home:~> fpc -glh tirc.pp
home:~> ./tirc
Chain: 00007F6FA90280C0
Chain: 00007F6FA90280C0
Done: 00007F6FA90280C0
fin
Heap dump by heaptrc unit of /home/michael/tirc
1 memory blocks allocated : 32/32
1 memory blocks freed : 32/32
0 unfreed memory blocks : 0
True heap size : 32768
True free heap : 32768
Michael.
More information about the fpc-devel
mailing list