[fpc-pascal] Freeing memory with exceptions

Hairy Pixels genericptr at gmail.com
Thu May 25 04:25:53 CEST 2023

> On May 24, 2023, at 10:11 PM, Sven Barth via fpc-pascal <fpc-pascal at lists.freepascal.org> wrote:
> You must have $H+ on and those are AnsiStrings? Why is there exception handling involved with AnsiString? I guess it needs this just in case an exception is thrown somewhere in the call stack?
> Because Ansi- and UnicodeString are managed types. *All* managed types managed string types, interfaces, Variants, managed records) must be finalized correctly even if an exception occurs. 

That's a problem with exceptions then, they are baked into the language and impose a cost on all managed types now even if we use them or not. Even disabling the implicit stack frames (forgot what it's called) doesn't get around this right?

Ryan Joseph

More information about the fpc-pascal mailing list