Bryan O'Sullivan committed 9f06cb6

Undo an overflow bug I introduced with quotRem

Comments (0)

Files changed (1)


 {-# INLINE decimal' #-}
 decimal' p i
     | i < 0 = if p i
-              then let (q, r) = (-i) `quotRem` 10
-                       !n = countDigits q
+              then let (q, r) = i `quotRem` 10
+                       qq = -q
+                       !n = countDigits qq
                    in writeN (n + 2) $ \marr off -> do
                        unsafeWrite marr off minus
-                       posDecimal marr (off+1) n q
-                       unsafeWrite marr (off+n+1) (i2w r)
+                       posDecimal marr (off+1) n qq
+                       unsafeWrite marr (off+n+1) (i2w (-r))
               else let j = -i
                        !n = countDigits j
                    in writeN (n + 1) $ \marr off ->
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.