Skip to content

Commit c9e113c

Browse files
committed
Fix strings on aarch64
Should fix JuliaGraphics/QML.jl#202
1 parent 6606c74 commit c9e113c

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/CxxWrap.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -615,8 +615,8 @@ Base.unsafe_convert(to_type::Type{<:CxxBaseRef{T}}, v::CxxBaseRef) where {T} = t
615615
Base.unsafe_convert(to_type::Type{<:CxxBaseRef}, v::Base.RefValue) = to_type(pointer_from_objref(v))
616616

617617
Base.cconvert(::Type{CxxPtr{CxxPtr{CxxChar}}}, v::Vector{String}) = Base.cconvert(Ptr{Ptr{Cchar}}, v)
618-
Base.unsafe_convert(to_type::Type{CxxPtr{CxxPtr{CxxChar}}}, a::Base.RefArray{Ptr{Int8}, Vector{Ptr{Int8}}, Any}) = to_type(Base.unsafe_convert(Ptr{Ptr{Cchar}}, a))
619-
Base.unsafe_convert(to_type::Type{CxxPtr{CxxPtr{CxxChar}}}, a::Base.RefArray{Ptr{Int8}, Vector{Ptr{Int8}}, Vector{Any}}) = to_type(Base.unsafe_convert(Ptr{Ptr{Cchar}}, a))
618+
Base.unsafe_convert(to_type::Type{CxxPtr{CxxPtr{CxxChar}}}, a::Base.RefArray{Ptr{Cchar}, Vector{Ptr{Cchar}}, Any}) = to_type(Base.unsafe_convert(Ptr{Ptr{Cchar}}, a))
619+
Base.unsafe_convert(to_type::Type{CxxPtr{CxxPtr{CxxChar}}}, a::Base.RefArray{Ptr{Cchar}, Vector{Ptr{Cchar}}, Vector{Any}}) = to_type(Base.unsafe_convert(Ptr{Ptr{Cchar}}, a))
620620

621621
cxxconvert(to_type::Type{<:CxxBaseRef{T}}, x, ::Type{IsNormalType}) where {T} = Ref{T}(convert(T,x))
622622
cxxconvert(to_type::Type{<:CxxBaseRef{T}}, x::Base.RefValue, ::Type{IsNormalType}) where {T} = x

src/StdLib/StdString.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,11 @@ julia> StdString(b"visible\\0hidden")
8181
"""
8282
StdString(::Union{Cstring,Base.CodeUnits,Vector{UInt8},Ref{Int8},Array{Int8}})
8383

84-
StdString(x::Cstring) = StdString(convert(Ptr{Int8}, x))
85-
StdString(x::Base.CodeUnits) = StdString(collect(x))
86-
StdString(x::Vector{UInt8}) = StdString(collect(reinterpret(Int8, x)))
84+
StdString(x::Cstring) = StdString(convert(Ptr{Cchar}, x))
85+
StdString(x::Base.CodeUnits) = StdString(collect(reinterpret(Cchar,x)))
86+
@static if Cchar != UInt8
87+
StdString(x::Vector{UInt8}) = StdString(collect(reinterpret(Cchar, x)))
88+
end
8789

8890
"""
8991
StdString(str, n::Integer)

0 commit comments

Comments
 (0)