bug in the vm: bad retype from pointer to oop

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

bug in the vm: bad retype from pointer to oop

Marek Sterzik
 
Hello!

I found a bug in the sources of the VM, which often causes
segfaults. It happens when the VM is compiled for a 64bit
architecture. On many places there is retyped from pointer
to oop as:

oop = (sqInt)(long)oop;

but it should be:

oop = oopForPointer(oop);

This is at least for the unix architecture, and at least in some
(more than one) plugins, specially in the SocketPlugin.
On my system, the sqMemoryBase is not zero, so the two lines above
makes two different pointers.

Now, I have fixed the socket plugin, but if the source is generated,
it would be a good idea to fix the generator. (And I have no idea
how the generator works).

Regards

 marek sterzik
Reply | Threaded
Open this post in threaded view
|

Re: bug in the vm: bad retype from pointer to oop

timrowledge
 

On 1-Jan-08, at 6:23 PM, Marek Sterzik wrote:

>
> Hello!
>
> I found a bug in the sources of the VM, which often causes
> segfaults. It happens when the VM is compiled for a 64bit
> architecture. On many places there is retyped from pointer
> to oop as:
>
> oop = (sqInt)(long)oop;
>
> but it should be:
>
> oop = oopForPointer(oop);
Thanks Marek - that was Mantis 5688 which I closed just a couple of  
days ago. It will be fixed in the next release of VMMaker


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Quality assurance: A way to ensure you never deliver shoddy goods  
accidentally.