@@ -634,7 +634,7 @@ modifyIndexUnsafe Array{..} i f = do
634modifyIndexPtr :: forall m a b. (MonadIO m, Storable a) =>
634modifyIndexPtr :: forall m a b. (MonadIO m, Storable a) =>
635 Int -> (a -> (a, b)) -> Ptr a -> Ptr a -> m b
635 Int -> (a -> (a, b)) -> Ptr a -> Ptr a -> m b
636modifyIndexPtr i f start end = liftIO $ do
636modifyIndexPtr i f start end = liftIO $ do
637− let elemSize = sizeOf (undefined :: a)
637+ let elemSize = sizeOfElem (undefined :: a)
638 elemPtr = start `plusPtr` (elemSize * i)
638 elemPtr = start `plusPtr` (elemSize * i)
639 if i >= 0 && elemPtr `plusPtr` elemSize <= end
639 if i >= 0 && elemPtr `plusPtr` elemSize <= end
@@ -682,7 +682,7 @@ modify Array{..} f = liftIO $
684 go ptr = do
684 go ptr = do
685− let elemSize = sizeOf (undefined :: a)
685+ let elemSize = sizeOfElem (undefined :: a)
686 when (ptr `plusPtr` elemSize <= aEnd) $ do
686 when (ptr `plusPtr` elemSize <= aEnd) $ do
687 r <- peek ptr
687 r <- peek ptr
688 poke ptr (f r)
688 poke ptr (f r)
@@ -706,7 +706,7 @@ unsafeSwapIndices :: forall m a. (MonadIO m, Storable a)
706 => Array a -> Int -> Int -> m ()
706 => Array a -> Int -> Int -> m ()
707unsafeSwapIndices Array{..} i1 i2 = liftIO $ do
707unsafeSwapIndices Array{..} i1 i2 = liftIO $ do
708 unsafeWithArrayContents arrContents arrStart $ \ptr -> do
708 unsafeWithArrayContents arrContents arrStart $ \ptr -> do
709− let elemSize = sizeOf (undefined :: a)
709+ let elemSize = sizeOfElem (undefined :: a)
710 ptr1 = ptr `plusPtr` (elemSize * i1)
710 ptr1 = ptr `plusPtr` (elemSize * i1)
711 ptr2 = ptr `plusPtr` (elemSize * i2)
711 ptr2 = ptr `plusPtr` (elemSize * i2)
712 swapPtrs ptr1 (ptr2 :: Ptr a)
712 swapPtrs ptr1 (ptr2 :: Ptr a)
@@ -717,7 +717,7 @@ unsafeSwapIndices Array{..} i1 i2 = liftIO $ do
717swapIndices :: forall m a. (MonadIO m, Storable a)
717swapIndices :: forall m a. (MonadIO m, Storable a)
718 => Array a -> Int -> Int -> m ()
718 => Array a -> Int -> Int -> m ()
719swapIndices Array{..} i1 i2 = liftIO $ do
719swapIndices Array{..} i1 i2 = liftIO $ do
720− let elemSize = sizeOf (undefined :: a)
720+ let elemSize = sizeOfElem (undefined :: a)
721 ptr1 = arrStart `plusPtr` (elemSize * i1)
721 ptr1 = arrStart `plusPtr` (elemSize * i1)
722 ptr2 = arrStart `plusPtr` (elemSize * i2)
722 ptr2 = arrStart `plusPtr` (elemSize * i2)
723 when (i1 < 0 || ptr1 >= aEnd ) $ invalidIndex "swapIndices" i1
723 when (i1 < 0 || ptr1 >= aEnd ) $ invalidIndex "swapIndices" i1
@@ -1208,7 +1208,7 @@ reverse Array{..} = liftIO $ do
1211− elemSize = sizeOf (undefined :: a)
1211+ elemSize = sizeOfElem (undefined :: a)
1213 swap l h = do
1213 swap l h = do
1214 when (l < h) $ do
1214 when (l < h) $ do