[Vm-dev] Updated callbacks

Andreas Raab andreas.raab at gmx.de
Tue Jan 16 21:19:49 UTC 2007


Hi Guys -

Just FYI, I found a major bug in the callback support I posted earlier. 
The problem occurs if one fails a primitive *after* a callback has been 
invoked like here:

Squeak -> (primitive) -> Plugin
                          Plugin -> (callback) -> Squeak
                          Plugin <-  (return)  <- Squeak
Squeak <-  (failure)  <- Plugin

In such a case, the method being activated by the primitive failure is 
not the method originally invoking the primitive but rather the one that 
returned from the callback. More technically speaking, the interpreter's 
newMethod isn't preserved which causes the effect described above. The 
attached version fixes the problem by preserving newMethod across 
callback enter/return.

Cheers,
   - Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Callbacks.2.cs
Type: text/x-csharp
Size: 17427 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20070116/f55b7660/Callbacks.2.bin


More information about the Vm-dev mailing list