OLEAUT32: Don't crash on divide by zero
Daniel Remenak
dtremenak at gmail.com
Mon Apr 11 15:19:56 CDT 2005
IEEE floating point has a special zero value. See
http://stevehollasch.com/cgindex/coding/ieeefloat.html in the "Special
Values" section. You can compare against this value, and (a - a) =
0.0f. You do lose that precision when you introduce multiplication
and division...so you might end up with ((b * a) / b - a) != 0...which
is why everyone warns against comparing with zero. Nevertheless, 5.0f
/ 0.0f will still trigger a divide by zero error, and that can be
avoided by checking the denominator against 0 (which is what this
patch does).
On Apr 11, 2005 1:06 PM, Marcus Meissner <marcus at jet.franken.de> wrote:
> On Mon, Apr 11, 2005 at 12:47:22PM -0700, Daniel Remenak wrote:
> > Changelog:
> > Return DISP_E_DIVBYZERO instead of crashing when asked to divide a
> > variant by zero.
>
> You cannot really compare floats against 0 I think.
>
> Ciao, Marcus
>
>
More information about the wine-devel
mailing list