]> git.saurik.com Git - apple/libc.git/blobdiff - gdtoa/FreeBSD/gdtoa-strtod.c
Libc-339.tar.gz
[apple/libc.git] / gdtoa / FreeBSD / gdtoa-strtod.c
index f1a0c0495786a0e7b495f2ce8b0bfbbe3b222c5f..4913d5089c946a2fb75b7c28ef097844432dcf8d 100644 (file)
@@ -114,15 +114,17 @@ strtod
                switch(s[1]) {
                  case 'x':
                  case 'X':
-                       switch(i = gethex(&s, &fpi, &exp, &bb, sign)) {
+                       switch((i = gethex(&s, &fpi, &exp, &bb, sign)) & STRTOG_Retmask) {
                          case STRTOG_NoNumber:
                                s = s00;
                                sign = 0;
                          case STRTOG_Zero:
                                break;
                          default:
-                               copybits(bits, fpi.nbits, bb);
-                               Bfree(bb);
+                               if (bb) {
+                                       copybits(bits, fpi.nbits, bb);
+                                       Bfree(bb);
+                                       }
                                ULtod(((U*)&rv)->L, bits, exp, i);
                          }
                        goto ret;