From: simonmar Date: Wed, 15 Aug 2001 09:24:47 +0000 (+0000) Subject: [project @ 2001-08-15 09:24:47 by simonmar] X-Git-Tag: Approximately_9120_patches~1249 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=2a6c55eb470c3359fa67d2eed5f47194ff368e51;p=ghc-hetmet.git [project @ 2001-08-15 09:24:47 by simonmar] more wibbles --- diff --git a/ghc/lib/std/PrelMarshalArray.lhs b/ghc/lib/std/PrelMarshalArray.lhs index 69ea69a..2f2a3d4 100644 --- a/ghc/lib/std/PrelMarshalArray.lhs +++ b/ghc/lib/std/PrelMarshalArray.lhs @@ -1,5 +1,5 @@ % ----------------------------------------------------------------------------- -% $Id: PrelMarshalArray.lhs,v 1.5 2001/08/15 09:19:04 simonmar Exp $ +% $Id: PrelMarshalArray.lhs,v 1.6 2001/08/15 09:24:47 simonmar Exp $ % % (c) The FFI task force, 2000 % @@ -126,10 +126,11 @@ reallocArray0 ptr size = reallocArray ptr (size + 1) -- needed linear stack space. -- peekArray :: Storable a => Int -> Ptr a -> IO [a] -peekArray size ptr = f (size-1) [] +peekArray size ptr | size < 0 = return [] + | othwerwise = f (size-1) [] where f 0 acc = do e <- peekElemOff ptr 0; return (e:acc) - f n acc = do e <- peekElemOff ptr n; f n (e:acc) + f n acc = do e <- peekElemOff ptr n; f (n-1) (e:acc) -- convert an array terminated by the given end marker into a Haskell list --