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
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; tim@rowledge.org; http://www.rowledge.org/tim Quality assurance: A way to ensure you never deliver shoddy goods accidentally.
vm-dev@lists.squeakfoundation.org