[Gambas-user] Segmentation Fault - Deserialization

Brian G brian at westwoodsvcs.com
Thu Jul 16 22:01:47 CEST 2020


interesting because i just ran the provided project with both as object and as variant and both worked correctly

only the as ClassName failed.

I am using the latest Daily 3.15 

Thank You
Brian G

----- Original Message -----
From: "T Lee Davidson" <t.lee.davidson at gmail.com>
To: "Gambas mailing list" <user at lists.gambas-basic.org>
Sent: Thursday, July 16, 2020 12:57:48 PM
Subject: Re: [Gambas-user] Segmentation Fault - Deserialization

On 7/16/20 3:10 PM, Brian G wrote:
> Ok I looked at you project,
> 
> My understanding is that when you use as object or as variant, the serialization includes the name of the class in the stream,
> so that when its recreated Gambas can instantiate the object from the stream because it can read the class name before invoking 
> the _read or _write special methods on that class..
> 
> I guess it should know the name from the - as class name -, But I have never used with a specific class name.
> 
> I have been using this for about a year now, and have always used it that way with as object or variant.
> 
> Is there a reason, you need to use the specific class name when you read and write?
> 
> Thank You
> Brian G
> 

Your understanding appears to be correct.

Using the example given at http://gambaswiki.org/wiki/lang/special/read :
- Write #f1, Item1 As Object 'Writes the class name to the output file,
- Write #f1, Item1 As MyClass 'Does not write the class name to the output file and causes a SegFault upon read.

However, in Matthew's project, changing line 19 to be "Write #hFile, hObj As Object" does not correct the issue since, for some 
reason, the class name is NOT written to the output file.

The question is, why?

I thought perhaps there was a collision between the Class1 {Name} property and the object's .Name property. But, changing the 
symbol name of the user-defined {Name} property did not solve the SegFault.


-- 
Lee

----[ http://gambaswiki.org/wiki/doc/netiquette ]----


More information about the User mailing list