I just fixed (I think) a very serious bug in the Resolver driver on
64-bit systems
It was in some code that promotes a 32-bit register into a 64-bit accumulator.

This is done by subtracting the old 32-bit register value from the new
one, and adding the difference to the accumulator.
This works even when the 32-bit value wraps, as a consequence of
2s-complement maths.

The problem was caused by the assumption that casting to long gives a
32-bit value.

A quick grep of the code for (long) shows very many instances of that
cast. I rather suspect that in many cases it might not be doing quite
what the author intended when compiled for 64-bit systems.
This might need a bit of analysis by someone who actually understands
this sort of thing…

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to