[Vm-dev] bug in the vm: bad retype from pointer to oop

Marek Sterzik marek at milimetr.org
Wed Jan 2 02:23:16 UTC 2008


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).


 marek sterzik

More information about the Vm-dev mailing list