[Internal] properly define ByteArrayCopy functions to only requires ByteArrayAccess from the source
This commit is contained in:
parent
d595c01c09
commit
be42fec6e5
@ -130,19 +130,19 @@ byteArrayConcat allBs = byteArrayAllocAndFreeze total (loop allBs)
|
|||||||
withByteArray b $ \p -> bufCopy dst p sz
|
withByteArray b $ \p -> bufCopy dst p sz
|
||||||
loop bs (dst `plusPtr` sz)
|
loop bs (dst `plusPtr` sz)
|
||||||
|
|
||||||
byteArrayCopy :: (ByteArray bs1, ByteArray bs2) => bs1 -> (Ptr p -> IO ()) -> IO bs2
|
byteArrayCopy :: (ByteArrayAccess bs1, ByteArray bs2) => bs1 -> (Ptr p -> IO ()) -> IO bs2
|
||||||
byteArrayCopy bs f =
|
byteArrayCopy bs f =
|
||||||
byteArrayAlloc (byteArrayLength bs) $ \d -> do
|
byteArrayAlloc (byteArrayLength bs) $ \d -> do
|
||||||
withByteArray bs $ \s -> bufCopy d s (byteArrayLength bs)
|
withByteArray bs $ \s -> bufCopy d s (byteArrayLength bs)
|
||||||
f (castPtr d)
|
f (castPtr d)
|
||||||
|
|
||||||
byteArrayCopyRet :: (ByteArray bs1, ByteArray bs2) => bs1 -> (Ptr p -> IO a) -> IO (a, bs2)
|
byteArrayCopyRet :: (ByteArrayAccess bs1, ByteArray bs2) => bs1 -> (Ptr p -> IO a) -> IO (a, bs2)
|
||||||
byteArrayCopyRet bs f =
|
byteArrayCopyRet bs f =
|
||||||
byteArrayAllocRet (byteArrayLength bs) $ \d -> do
|
byteArrayAllocRet (byteArrayLength bs) $ \d -> do
|
||||||
withByteArray bs $ \s -> bufCopy d s (byteArrayLength bs)
|
withByteArray bs $ \s -> bufCopy d s (byteArrayLength bs)
|
||||||
f (castPtr d)
|
f (castPtr d)
|
||||||
|
|
||||||
byteArrayCopyAndFreeze :: (ByteArray bs1, ByteArray bs2) => bs1 -> (Ptr p -> IO ()) -> bs2
|
byteArrayCopyAndFreeze :: (ByteArrayAccess bs1, ByteArray bs2) => bs1 -> (Ptr p -> IO ()) -> bs2
|
||||||
byteArrayCopyAndFreeze bs f =
|
byteArrayCopyAndFreeze bs f =
|
||||||
byteArrayAllocAndFreeze (byteArrayLength bs) $ \d -> do
|
byteArrayAllocAndFreeze (byteArrayLength bs) $ \d -> do
|
||||||
withByteArray bs $ \s -> bufCopy d s (byteArrayLength bs)
|
withByteArray bs $ \s -> bufCopy d s (byteArrayLength bs)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user