diff --git a/base/strings/substring.jl b/base/strings/substring.jl index 0da09f36be931..7cc4c53a6b661 100644 --- a/base/strings/substring.jl +++ b/base/strings/substring.jl @@ -205,7 +205,13 @@ end return n end -function string(a::Union{Char, String, SubString{String}}...) +@inline function __unsafe_string!(out, s::Symbol, offs::Integer) + n = sizeof(s) + GC.@preserve s out unsafe_copyto!(pointer(out, offs), unsafe_convert(Ptr{UInt8},s), n) + return n +end + +function string(a::Union{Char, String, SubString{String}, Symbol}...) n = 0 for v in a if v isa Char