[fpc-pascal] Variants with classes and records

Hairy Pixels genericptr at gmail.com
Thu Oct 6 13:49:29 CEST 2022



> On Oct 6, 2022, at 12:45 PM, Sven Barth <pascaldragon at googlemail.com> wrote:
> 
> Am 05.10.2022 um 14:16 schrieb Hairy Pixels via fpc-pascal:
>> Is it possible to assign a class to a variant? I tried and get a crash. If not, why not? It’s just a pointer so I would expect it to work.
> 
> There is no field that would hold a class reference and no type value that would differentiate it, thus the code handling variants would not be able to finalize (aka free) a class correctly. You can of course always use a custom type and handle that yourself. *shrugs*

Oh so the problem is variant thinks it should try to manage memory for you? I tried doing:

  v: variant;
begin
  v := GetMem(100);

And that crashed also. I thought it would be ok to just hold the reference but not claim ownership over it.

Regards,
	Ryan Joseph



More information about the fpc-pascal mailing list