fix FFI error message on too-large characters

This commit is contained in:
dzaima 2025-05-25 23:52:55 +03:00
parent 454d1b072d
commit 8cc1e08f46
2 changed files with 16 additions and 10 deletions

View File

@ -333,7 +333,13 @@ static u32 styG(B x) {
B sq = squeeze_chrTry(incG(x), &xe);
bool ok = elChrOk(sq, umax, xe);
decG(sq);
if (!ok) thrF("FFI: Array provided for :c%S contained %S", desc+1, genericDesc(nonChr));
if (!ok) {
PLAINLOOP for (ux i = 0; i < IA(x); i++) {
u32 c = o2cG(IGetU(x,i));
if (c > umax) thrF("FFI: Array provided for :c%S contained @+%i", desc+1, c);
}
fatal("expected ffi_anyRange to error");
}
}
}
#else

View File

@ -177,15 +177,15 @@
!"FFI: Array provided for :c8 contained number" % f@•FFI"""bqn_init"">*i8:c8" F 4
!"FFI: Array provided for :c8 contained number" % f@•FFI"""bqn_init"">*i8:c8" F "Ah"•internal.Variation4
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i8:c8" "i8" F "hello"1000
!"FFI: Array provided for :c8 contained object of unknown type" % f@•FFI"""bqn_init""*i8:c8" "i8" F "hello ⍉"1000
!"FFI: Array provided for :c8 contained object of unknown type" % f@•FFI"""bqn_init""*i8:c8" "i8" F "hello 𝕩"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i16:c16""i8" F "hello"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i16:c16""i8" F "hello ⍉"1000
!"FFI: Array provided for :c16 contained object of unknown type" % f@•FFI"""bqn_init""*i16:c16""i8" F "hello 𝕩"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i32:c32""i8" F "hello"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i32:c32""i8" F "hello ⍉"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i32:c32""i8" F "hello 𝕩"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i8:c8" "i8" F "hello"1000
!"FFI: Array provided for :c8 contained @+9033" % f@•FFI"""bqn_init""*i8:c8" "i8" F "hello ⍉"1000
!"FFI: Array provided for :c8 contained @+120169" % f@•FFI"""bqn_init""*i8:c8" "i8" F "hello 𝕩"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i16:c16""i8" F "hello"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i16:c16""i8" F "hello ⍉"1000
!"FFI: Array provided for :c16 contained @+120169" % f@•FFI"""bqn_init""*i16:c16""i8" F "hello 𝕩"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i32:c32""i8" F "hello"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i32:c32""i8" F "hello ⍉"1000
!"FFI: improper value for i8" % f@•FFI"""bqn_init""*i32:c32""i8" F "hello 𝕩"1000
%USE defs f@•FFI"*""memcpy""&i8""*i8:c8"size_t 1F 5, "Ah"•internal.Variation"hello", 5 %% 104101108108111