Fix memory leak when decoding Float and Double.
authorLennart Kolmodin <kolmodin@google.com>
Sat, 30 May 2015 14:14:03 +0000 (16:14 +0200)
committerLennart Kolmodin <kolmodin@google.com>
Sat, 30 May 2015 14:14:03 +0000 (16:14 +0200)
src/Data/Binary/Class.hs

index 2477056..5aa6c05 100644 (file)
@@ -537,11 +537,17 @@ instance (Binary e) => Binary (Seq.Seq e) where
 
 instance Binary Double where
     put d = put (decodeFloat d)
-    get   = liftM2 encodeFloat get get
+    get   = do
+        x <- get
+        y <- get
+        return $! encodeFloat x y
 
 instance Binary Float where
     put f = put (decodeFloat f)
-    get   = liftM2 encodeFloat get get
+    get   =  do
+        x <- get
+        y <- get
+        return $! encodeFloat x y
 
 ------------------------------------------------------------------------
 -- Trees