Special case when we pushBack an empty list.
authorLennart Kolmodin <kolmodin@google.com>
Thu, 28 Feb 2013 15:57:26 +0000 (19:57 +0400)
committerLennart Kolmodin <kolmodin@google.com>
Thu, 28 Feb 2013 15:57:26 +0000 (19:57 +0400)
Gives about 10% speedup for the <|> of many chunks.

src/Data/Binary/Get/Internal.hs

index cde0a44..3108289 100644 (file)
@@ -229,6 +229,7 @@ runAndKeepTrack g = C $ \inp ks ->
 {-# INLINE runAndKeepTrack #-}
 
 pushBack :: [B.ByteString] -> Get ()
+pushBack [] = C $ \ inp ks -> ks inp ()
 pushBack bs = C $ \ inp ks -> ks (B.concat (inp : bs)) ()
 {-# INLINE pushBack #-}