Alex Ionescu wrote:
4) Browsing some registry keys in regedit causes
regedit to crash.
Err, this is because GCC is extremly stupid. It loads a stack structure
into ebx, and then the callback code becomes jmp(%ebx).
The problem is that it restores protected registers before doing the
jmp, so ebx is reset to it's value before the function is called...
I guess this needs to be made __volatile, but I'm afraid that this sort
of bug might happen in other DLLs. Does anyone know if gcc team is aware
of this?
Best regards,
Alex Ionescu