[fpc-devel] Defer keyword

J. Gareth Moreton gareth at moreton-family.com
Fri May 7 00:26:25 CEST 2021


There is some special handling involved in that the code inside the try 
part (I think) is effectively a nested procedure.  It's important in the 
context of stack unwinding when an exception occurs.  There is a 
performance penalty when using them, which one reason why the compiler 
sources don't use them.  There's probably other reasons too.  There 
might be some speed-up potential where standard Exit calls are 
concerned, but I'm not sure.

Gareth aka. Kit

On 06/05/2021 23:17, Ryan Joseph via fpc-devel wrote:
>
>> On May 6, 2021, at 4:05 PM, Sven Barth via fpc-devel <fpc-devel at lists.freepascal.org> wrote:
>>
>> Other than that, you're right and what Ryan is trying to do is definitely the intended purpose of try ... finally.
>>
> Is there any runtime code involved with try..finally or does it just reorganize the code to run at the end of the block? My understanding of the defer keyword is that is was just a fancy way to move some code into a block which always gets run with a function exits.
>
> Regards,
> 	Ryan Joseph
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>

-- 
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the fpc-devel mailing list