Skip to content

Commit 9477472

Browse files
vtjnashaviatesk
andauthored
fix prepend StackOverflow issue (#54718)
Attempt to fix #54711 Test introduced by #36227 --------- Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>
1 parent f255099 commit 9477472

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

base/array.jl

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,8 +1316,7 @@ end
13161316

13171317
append!(a::AbstractVector, iter) = _append!(a, IteratorSize(iter), iter)
13181318
push!(a::AbstractVector, iter...) = append!(a, iter)
1319-
1320-
append!(a::AbstractVector, iter...) = foldl(append!, iter, init=a)
1319+
append!(a::AbstractVector, iter...) = (for v in iter; append!(a, v); end; return a)
13211320

13221321
function _append!(a::AbstractVector, ::Union{HasLength,HasShape}, iter)
13231322
n = Int(length(iter))::Int
@@ -1376,10 +1375,9 @@ function prepend!(a::Vector{T}, items::Union{AbstractVector{<:T},Tuple}) where T
13761375
return a
13771376
end
13781377

1379-
prepend!(a::Vector, iter) = _prepend!(a, IteratorSize(iter), iter)
1380-
pushfirst!(a::Vector, iter...) = prepend!(a, iter)
1381-
1382-
prepend!(a::AbstractVector, iter...) = foldr((v, a) -> prepend!(a, v), iter, init=a)
1378+
prepend!(a::AbstractVector, iter) = _prepend!(a, IteratorSize(iter), iter)
1379+
pushfirst!(a::AbstractVector, iter...) = prepend!(a, iter)
1380+
prepend!(a::AbstractVector, iter...) = (for v = reverse(iter); prepend!(a, v); end; return a)
13831381

13841382
function _prepend!(a::Vector, ::Union{HasLength,HasShape}, iter)
13851383
@_terminates_locally_meta

0 commit comments

Comments
 (0)