Skip to content

Commit

Permalink
Merge pull request JuliaCollections#871 from Sinfaen/ll-fix-append
Browse files Browse the repository at this point in the history
Fix for MutableLinkedList append!
  • Loading branch information
oxinabox committed Oct 23, 2023
2 parents 4941b09 + 940e11f commit 83cdb1b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
6 changes: 6 additions & 0 deletions src/mutable_list.jl
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,13 @@ end
function Base.append!(l1::MutableLinkedList{T}, l2::MutableLinkedList{T}) where T
l1.node.prev.next = l2.node.next # l1's last's next is now l2's first
l2.node.prev.next = l1.node # l2's last's next is now l1.node
l2.node.next.prev = l1.node.prev # l2's first's prev is now l1's last
l1.node.prev = l2.node.prev # l1's first's prev is now l2's last
l1.len += length(l2)
# make l2 empty
l2.node.prev = l2.node
l2.node.next = l2.node
l2.len = 0
return l1
end

Expand Down
3 changes: 2 additions & 1 deletion test/test_mutable_list.jl
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,8 @@
@testset "append" begin
l2 = MutableLinkedList{Int}(n+1:2n...)
append!(l, l2)
@test l == MutableLinkedList{Int}(1:2n...)
@test l == MutableLinkedList{Int}(1:2n...)
@test l2 == MutableLinkedList{Int}()
@test collect(l) == collect(MutableLinkedList{Int}(1:2n...))
l3 = MutableLinkedList{Int}(1:n...)
append!(l3, n+1:2n...)
Expand Down

0 comments on commit 83cdb1b

Please sign in to comment.