Closed
Description
openedon Nov 4, 2023
Found during CI on https://github.com/cesmix-mit/LAMMPS.jl
ERROR: LoadError: TypeError: in RefArray, in A, expected A<:(AbstractArray{Ptr{Int8}}), got Type{Vector{Ptr{UInt8}}}
Stacktrace:
[1] Ref{Ptr{Int8}}(a::Vector{Ptr{UInt8}})
@ Base ./refpointer.jl:158
[2] cconvert(::Type{Ptr{Ptr{Int8}}}, a::Vector{Ptr{UInt8}})
@ Base ./refpointer.jl:176
[3] lammps_open_no_mpi(argc::Int64, argv::Vector{Ptr{UInt8}}, ptr::Ptr{Nothing})
@ LAMMPS.API ~/work/LAMMPS.jl/LAMMPS.jl/src/api.jl:53
[4] LMP(args::Vector{String}, comm::Nothing)
@ LAMMPS ~/work/LAMMPS.jl/LAMMPS.jl/src/LAMMPS.jl:69
The ccall is generated by Clang.jl and takes as an argument a Ptr{Ptr{Cchar}}
https://github.com/cesmix-mit/LAMMPS.jl/blob/126d9711e37fef035d5c7327d1181daf12b7b22a/src/api.jl#L53
and while the argsv = map(pointer, args)
should probably be inside the GC.@preserve
this used to work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Assignees
Labels
No labels