diff --git a/mach/proto/fp/ngf4.c b/mach/proto/fp/ngf4.c index 7b2351f6..540b1f1f 100644 --- a/mach/proto/fp/ngf4.c +++ b/mach/proto/fp/ngf4.c @@ -21,7 +21,9 @@ _float f; { char unsigned *p; - p = (char unsigned *) &f; - *p ^= 0x80; + if (f != (_float) 0) { + p = (char unsigned *) &f; + *p ^= 0x80; + } } diff --git a/mach/proto/fp/ngf8.c b/mach/proto/fp/ngf8.c index 178a9b76..b36a53c7 100644 --- a/mach/proto/fp/ngf8.c +++ b/mach/proto/fp/ngf8.c @@ -21,7 +21,9 @@ _double f; { unsigned char *p; - p = (unsigned char *) &f; - *p ^= 0x80; + if (f[0] != 0 || f[1] != 0) { + p = (unsigned char *) &f; + *p ^= 0x80; + } }