JuliaGraphics / ColorTypes.jl

Basic color definitions and traits
Other
77 stars 35 forks source link

`cconvert` stack overflow with invalid input type #268

Open johnnychen94 opened 2 years ago

johnnychen94 commented 2 years ago

It seems that our convert dispatch workflow is a little bit fragile 😆

julia> Gray(1.0+0.0im)
ERROR: StackOverflowError:
Stacktrace:
     [1] cconvert(#unused#::Type{Gray{N0f8}}, c::Complex{Int64})
       @ ColorTypes ~/.julia/packages/ColorTypes/6m8P7/src/conversions.jl:76
     [2] convert(#unused#::Type{Gray{N0f8}}, c::Complex{Int64})
       @ ColorTypes ~/.julia/packages/ColorTypes/6m8P7/src/conversions.jl:74
     [3] Gray{N0f8}(x::Complex{Int64})
       @ ColorTypes ~/.julia/packages/ColorTypes/6m8P7/src/types.jl:465
     [4] _convert(#unused#::Type{Gray{N0f8}}, #unused#::Type{Gray}, #unused#::Type{Gray}, c::Complex{Int64})
       @ ColorTypes ~/.julia/packages/ColorTypes/6m8P7/src/conversions.jl:96
--- the last 4 lines are repeated 19994 more times ---
 [79981] cconvert(#unused#::Type{Gray{N0f8}}, c::Complex{Int64})
       @ ColorTypes ~/.julia/packages/ColorTypes/6m8P7/src/conversions.jl:76
 [79982] convert(#unused#::Type{Gray{N0f8}}, c::Complex{Int64})
       @ ColorTypes ~/.julia/packages/ColorTypes/6m8P7/src/conversions.jl:74
 [79983] Gray{N0f8}(x::Complex{Int64})
       @ ColorTypes ~/.julia/packages/ColorTypes/6m8P7/src/types.jl:465