Skip to content

Commit 29e1454

Browse files
authored
Merge pull request #36359 from JuliaLang/rf/fix-bitvector-deleteat
deleteat!(::BitVector, inds) : check bounds for the first passed index
2 parents 5bb1053 + ca4a895 commit 29e1454

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

base/bitarray.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -967,11 +967,11 @@ function deleteat!(B::BitVector, inds)
967967
n = new_l = length(B)
968968
y = iterate(inds)
969969
y === nothing && return B
970-
n == 0 && throw(BoundsError(B, inds))
971970

972971
Bc = B.chunks
973972

974973
(p, s) = y
974+
checkbounds(B, p)
975975
q = p+1
976976
new_l -= 1
977977
y = iterate(inds, s)

test/bitarray.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,8 @@ timesofar("indexing")
666666
b1 = bitrand(v1)
667667
@test_throws ArgumentError deleteat!(b1, [1, 1, 2])
668668
@test_throws BoundsError deleteat!(b1, [1, length(b1)+1])
669+
@test_throws BoundsError deleteat!(b1, [length(b1)+rand(1:100)])
670+
@test_throws BoundsError deleteat!(bitrand(1), [-1, 0, 1])
669671

670672
@test_throws BoundsError deleteat!(BitVector(), 1)
671673
@test_throws BoundsError deleteat!(BitVector(), [1])

0 commit comments

Comments
 (0)