Skip to content

Commit 91542bc

Browse files
committed
restrict to known non-offset-indexed inds
1 parent bc6f772 commit 91542bc

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

base/genericmemory.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,8 @@ end
297297
$(Expr(:new, :(Array{T, N}), :ref, :dims))
298298
end
299299

300-
@eval function view(m::GenericMemory{M, T}, inds::AbstractUnitRange) where {M, T}
301-
isempty(inds) && return T[] # needed to allow view(Memory{T}(undef, 0), 2:1)
300+
@eval function view(m::GenericMemory{M, T}, inds::Union{UnitRange, OneTo}) where {M, T}
301+
!(inds isa OneTo) && isempty(inds) && return T[] # needed to allow view(Memory{T}(undef, 0), 2:1)
302302
@boundscheck checkbounds(m, inds)
303303
ref = MemoryRef(m, first(inds)) # @inbounds here is not safe on view(Memory{T}(undef, 0), 2:1)
304304
dims = (length(inds),)

test/arrayops.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3215,6 +3215,9 @@ end
32153215
@test view(empty_mem, 1:0)::Vector{Module} == []
32163216
@test view(empty_mem, 10:3)::Vector{Module} == []
32173217
@test isempty(reshape(empty_mem, 0, 7, 1)::Array{Module, 3})
3218+
3219+
offset_inds = OffsetArrays.IdOffsetRange(values=3:6, indices=53:56)
3220+
@test view(collect(mem), offset_inds) == view(mem, offset_inds)
32183221
end
32193222

32203223
@testset "Memory size" begin

0 commit comments

Comments
 (0)