Skip to content

Commit 83cdb1b

Browse files
authored
Merge pull request JuliaCollections#871 from Sinfaen/ll-fix-append
Fix for MutableLinkedList append!
2 parents 4941b09 + 940e11f commit 83cdb1b

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/mutable_list.jl

+6
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,13 @@ end
153153
function Base.append!(l1::MutableLinkedList{T}, l2::MutableLinkedList{T}) where T
154154
l1.node.prev.next = l2.node.next # l1's last's next is now l2's first
155155
l2.node.prev.next = l1.node # l2's last's next is now l1.node
156+
l2.node.next.prev = l1.node.prev # l2's first's prev is now l1's last
157+
l1.node.prev = l2.node.prev # l1's first's prev is now l2's last
156158
l1.len += length(l2)
159+
# make l2 empty
160+
l2.node.prev = l2.node
161+
l2.node.next = l2.node
162+
l2.len = 0
157163
return l1
158164
end
159165

test/test_mutable_list.jl

+2-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@
9797
@testset "append" begin
9898
l2 = MutableLinkedList{Int}(n+1:2n...)
9999
append!(l, l2)
100-
@test l == MutableLinkedList{Int}(1:2n...)
100+
@test l == MutableLinkedList{Int}(1:2n...)
101+
@test l2 == MutableLinkedList{Int}()
101102
@test collect(l) == collect(MutableLinkedList{Int}(1:2n...))
102103
l3 = MutableLinkedList{Int}(1:n...)
103104
append!(l3, n+1:2n...)

0 commit comments

Comments
 (0)