Skip to content

Commit

Permalink
use preallocated bytestring of zeros instead of a String of zeros
Browse files Browse the repository at this point in the history
  • Loading branch information
BebeSparkelSparkel committed Jul 22, 2024
1 parent 594966b commit 9086882
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions Data/ByteString/Builder/RealFloat.hs
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,9 @@ module Data.ByteString.Builder.RealFloat
, generic
) where

import Data.ByteString.Builder.Internal (Builder)
import Data.ByteString.Builder.Internal (Builder, byteString)
import qualified Data.ByteString.Builder.RealFloat.Internal as R
import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString.Builder.RealFloat.F2S as RF
import qualified Data.ByteString.Builder.RealFloat.D2S as RD
import qualified Data.ByteString.Builder.Prim as BP
Expand Down Expand Up @@ -259,7 +260,7 @@ showStandard m e prec =
Nothing
| e <= 0 -> char7 '0'
`mappend` char7 '.'
`mappend` string7 (replicate (-e) '0')
`mappend` zeros (-e)
`mappend` mconcat (digitsToBuilder ds)
| otherwise ->
let f 0 s rs = mk0 (reverse s) `mappend` char7 '.' `mappend` mk0 rs
Expand All @@ -284,4 +285,4 @@ showStandard m e prec =
mkDot rs = if null rs then mempty else char7 '.' `mappend` mconcat rs
ds = digits m
digitsToBuilder = fmap (char7 . intToDigit)

zeros n = byteString $ BC.take n $ BC.replicate 308 '0'

0 comments on commit 9086882

Please sign in to comment.