Hello colleagues, i'm trying to use unsafe_wrap from a pointer from an external call (cfunction) to an array access. Looks like i have type problems:
function read_from_stream_callback(s::IO, buf::Ptr{UInt8}, len::UInt32) #b1 = zeros(UInt8,len) #nb = readbytes!(s,b1,len) #for i=1:len # unsafe_store!(buf,b1[i],i) #end b1 = zeros(UInt8,len) unsafe_wrap(b1,buf,len) nb = readbytes!(s,b1,len) @compat(Int32(0)) end _ _ _ _(_)_ | A fresh approach to technical computing (_) | (_) (_) | Documentation: http://docs.julialang.org _ _ _| |_ __ _ | Type "?help" for help. | | | | | | |/ _` | | | | |_| | | | (_| | | Version 0.5.0-rc2+0 (2016-08-12 11:25 UTC) _/ |\__'_|_|_|\__'_| | |__/ | x86_64-linux-gnu julia> include("png_stream.jl") ERROR: LoadError: MethodError: no method matching unsafe_wrap(::Array{UInt8,1}, ::Ptr{UInt8}, ::UInt32) Closest candidates are: unsafe_wrap(::Type{String}, ::Union{Ptr{Int8},Ptr{UInt8}}, ::Integer) at pointer.jl:86 unsafe_wrap(::Type{String}, ::Union{Ptr{Int8},Ptr{UInt8}}, ::Integer, ::Bool) at pointer.jl:86 unsafe_wrap{T}(::Union{Type{Array{T,1}},Type{Array{T,N}},Type{Array}}, ::Ptr{T}, ::Integer) at pointer.jl:57 ... in read_from_stream_callback(::Base.AbstractIOBuffer{Array{UInt8,1}}, ::Ptr{UInt8}, ::UInt32) at /home/lobi/juliarepo/png_stream.jl:16 in read_png_from_stream(::Base.AbstractIOBuffer{Array{UInt8,1}}) at /home/lobi/juliarepo/png_stream.jl:26 in include_from_node1(::String) at ./loading.jl:426 while loading /home/lobi/juliarepo/png_stream.jl, in expression starting on line 55 to which i somehow disagree (as long as UInt32 is an Integer). the commented code runs correctly (copy to but UInt8 seq.) A better explaination of the error? Wishing a happy day, Andreas