isByteArrayPinned# should consider BF_LARGE
First of all, i want to make sure isByteArrayPinned#
is intended to let user know if a given 'ByteArray#/MutableByteArray#' is movable during safe FFI call, isn't it?
If that is the case, then the code for stg_isByteArrayPinnedzh
is not enough, since not only bytes marked with BF_PINNED
flag is not movable, but also the bytes which is marked with BF_LARGE
. (I read the gc code and i'm confident this holds, but if it's not, please correct me).
Currently i'm using a FFI trickhttps://github.com/winterland1989/stdio/blob/master/cbits/bytes.c#L33 to get isByteArrayPinned#
on older GHCs, i want to make sure if BF_LARGE
works.
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |