Skip to content

Commit 44a55de

Browse files
authored
use native isvalid in 1.10 (#20)
1 parent b1c0017 commit 44a55de

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/StringViews.jl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,12 @@ Base.:(==)(s1::StringViewAndSub, s2::StringAndSub) = s2 == s1
8787
Base.typemin(::Type{StringView{Vector{UInt8}}}) = StringView(Vector{UInt8}(undef,0))
8888
Base.typemin(::T) where {T<:StringView} = typemin(T)
8989

90-
Base.isvalid(s::DenseStringViewAndSub) = ccall(:u8_isvalid, Int32, (Ptr{UInt8}, Int), s, sizeof(s)) 0
91-
Base.isvalid(s::StringViewAndSub) = all(isvalid, s)
92-
Base.isvalid(::Type{String}, s::StringViewAndSub) = isvalid(s)
90+
if VERSION < v"1.10.0-DEV.1007" # JuliaLang/julia#47880
91+
Base.isvalid(s::DenseStringViewAndSub) = ccall(:u8_isvalid, Int32, (Ptr{UInt8}, Int), s, sizeof(s)) 0
92+
Base.isvalid(s::StringViewAndSub) = all(isvalid, s)
93+
Base.isvalid(::Type{String}, s::StringViewAndSub) = isvalid(s)
94+
# else Julia 1.10's native UTF-8 validation should work for StringView
95+
end
9396

9497
function Base.isascii(s::StringViewAndSub)
9598
@inbounds for i = 1:ncodeunits(s)

0 commit comments

Comments
 (0)