@@ -216,7 +216,7 @@ isbitsunion(u::Type) = u isa Union && allocatedinline(u)
216216function _unsetindex! (A:: Array , i:: Int )
217217 @inline
218218 @boundscheck checkbounds (A, i)
219- @inbounds _unsetindex! (GenericMemoryRef (A. ref, i))
219+ @inbounds _unsetindex! (memoryref (A. ref, i))
220220 return A
221221end
222222
@@ -239,14 +239,14 @@ function isassigned(a::Array, i::Int...)
239239 @_noub_if_noinbounds_meta
240240 @boundscheck checkbounds (Bool, a, i... ) || return false
241241 ii = _sub2ind (size (a), i... )
242- return @inbounds isassigned (memoryref (a. ref, ii, false ))
242+ return @inbounds isassigned (memoryrefnew (a. ref, ii, false ))
243243end
244244
245245function isassigned (a:: Vector , i:: Int ) # slight compiler simplification for the most common case
246246 @inline
247247 @_noub_if_noinbounds_meta
248248 @boundscheck checkbounds (Bool, a, i) || return false
249- return @inbounds isassigned (memoryref (a. ref, i, false ))
249+ return @inbounds isassigned (memoryrefnew (a. ref, i, false ))
250250end
251251
252252
@@ -281,7 +281,7 @@ the same manner as C.
281281"""
282282function unsafe_copyto! (dest:: Array , doffs, src:: Array , soffs, n)
283283 n == 0 && return dest
284- unsafe_copyto! (GenericMemoryRef (dest. ref, doffs), GenericMemoryRef (src. ref, soffs), n)
284+ unsafe_copyto! (memoryref (dest. ref, doffs), memoryref (src. ref, soffs), n)
285285 return dest
286286end
287287
@@ -303,8 +303,8 @@ function _copyto_impl!(dest::Union{Array,Memory}, doffs::Integer, src::Union{Arr
303303 n > 0 || _throw_argerror (" Number of elements to copy must be non-negative." )
304304 @boundscheck checkbounds (dest, doffs: doffs+ n- 1 )
305305 @boundscheck checkbounds (src, soffs: soffs+ n- 1 )
306- @inbounds let dest = GenericMemoryRef (dest isa Array ? getfield (dest, :ref ) : dest, doffs)
307- src = GenericMemoryRef (src isa Array ? getfield (src, :ref ) : src, soffs)
306+ @inbounds let dest = memoryref (dest isa Array ? getfield (dest, :ref ) : dest, doffs),
307+ src = memoryref (src isa Array ? getfield (src, :ref ) : src, soffs)
308308 unsafe_copyto! (dest, src, n)
309309 end
310310 return dest
348348 @_nothrow_meta
349349 ref = a. ref
350350 newmem = ccall (:jl_genericmemory_copy_slice , Ref{Memory{T}}, (Any, Ptr{Cvoid}, Int), ref. mem, ref. ptr_or_offset, length (a))
351- return $ (Expr (:new , :(typeof (a)), :(Core . memoryref (newmem)), :(a. size)))
351+ return $ (Expr (:new , :(typeof (a)), :(memoryref (newmem)), :(a. size)))
352352end
353353
354354# # Constructors ##
@@ -973,21 +973,21 @@ function setindex! end
973973function setindex! (A:: Array{T} , x, i:: Int ) where {T}
974974 @_noub_if_noinbounds_meta
975975 @boundscheck (i - 1 )% UInt < length (A)% UInt || throw_boundserror (A, (i,))
976- memoryrefset! (memoryref (A. ref, i, false ), x isa T ? x : convert (T,x):: T , :not_atomic , false )
976+ memoryrefset! (memoryrefnew (A. ref, i, false ), x isa T ? x : convert (T,x):: T , :not_atomic , false )
977977 return A
978978end
979979function setindex! (A:: Array{T} , x, i1:: Int , i2:: Int , I:: Int... ) where {T}
980980 @inline
981981 @_noub_if_noinbounds_meta
982982 @boundscheck checkbounds (A, i1, i2, I... ) # generally _to_linear_index requires bounds checking
983- memoryrefset! (memoryref (A. ref, _to_linear_index (A, i1, i2, I... ), false ), x isa T ? x : convert (T,x):: T , :not_atomic , false )
983+ memoryrefset! (memoryrefnew (A. ref, _to_linear_index (A, i1, i2, I... ), false ), x isa T ? x : convert (T,x):: T , :not_atomic , false )
984984 return A
985985end
986986
987987__safe_setindex! (A:: Vector{Any} , @nospecialize (x), i:: Int ) = (@inline ; @_nothrow_noub_meta ;
988- memoryrefset! (memoryref (A. ref, i, false ), x, :not_atomic , false ); return A)
988+ memoryrefset! (memoryrefnew (A. ref, i, false ), x, :not_atomic , false ); return A)
989989__safe_setindex! (A:: Vector{T} , x:: T , i:: Int ) where {T} = (@inline ; @_nothrow_noub_meta ;
990- memoryrefset! (memoryref (A. ref, i, false ), x, :not_atomic , false ); return A)
990+ memoryrefset! (memoryrefnew (A. ref, i, false ), x, :not_atomic , false ); return A)
991991__safe_setindex! (A:: Vector{T} , x, i:: Int ) where {T} = (@inline ;
992992 __safe_setindex! (A, convert (T, x):: T , i))
993993
@@ -1059,7 +1059,7 @@ function _growbeg!(a::Vector, delta::Integer)
10591059 setfield! (a, :size , (newlen,))
10601060 # if offset is far enough advanced to fit data in existing memory without copying
10611061 if delta <= offset - 1
1062- setfield! (a, :ref , @inbounds GenericMemoryRef (ref, 1 - delta))
1062+ setfield! (a, :ref , @inbounds memoryref (ref, 1 - delta))
10631063 else
10641064 @noinline (function ()
10651065 memlen = length (mem)
@@ -1078,7 +1078,7 @@ function _growbeg!(a::Vector, delta::Integer)
10781078 newmem = array_new_memory (mem, newmemlen)
10791079 end
10801080 unsafe_copyto! (newmem, newoffset + delta, mem, offset, len)
1081- setfield! (a, :ref , @inbounds GenericMemoryRef (newmem, newoffset))
1081+ setfield! (a, :ref , @inbounds memoryref (newmem, newoffset))
10821082 end )()
10831083 end
10841084 return
@@ -1113,7 +1113,7 @@ function _growend!(a::Vector, delta::Integer)
11131113 newmem = array_new_memory (mem, newmemlen2)
11141114 newoffset = offset
11151115 end
1116- newref = @inbounds GenericMemoryRef (newmem, newoffset)
1116+ newref = @inbounds memoryref (newmem, newoffset)
11171117 unsafe_copyto! (newref, ref, len)
11181118 setfield! (a, :ref , newref)
11191119 end )()
@@ -1142,7 +1142,7 @@ function _growat!(a::Vector, i::Integer, delta::Integer)
11421142 prefer_start = i <= div (len, 2 )
11431143 # if offset is far enough advanced to fit data in beginning of the memory
11441144 if prefer_start && delta <= offset - 1
1145- newref = @inbounds GenericMemoryRef (mem, offset - delta)
1145+ newref = @inbounds memoryref (mem, offset - delta)
11461146 unsafe_copyto! (newref, ref, i)
11471147 setfield! (a, :ref , newref)
11481148 for j in i: i+ delta- 1
@@ -1159,7 +1159,7 @@ function _growat!(a::Vector, i::Integer, delta::Integer)
11591159 newmemlen = max (overallocation (memlen), len+ 2 * delta+ 1 )
11601160 newoffset = (newmemlen - newlen) ÷ 2 + 1
11611161 newmem = array_new_memory (mem, newmemlen)
1162- newref = @inbounds GenericMemoryRef (newmem, newoffset)
1162+ newref = @inbounds memoryref (newmem, newoffset)
11631163 unsafe_copyto! (newref, ref, i- 1 )
11641164 unsafe_copyto! (newmem, newoffset + delta + i - 1 , mem, offset + i - 1 , len - i + 1 )
11651165 setfield! (a, :ref , newref)
@@ -1176,7 +1176,7 @@ function _deletebeg!(a::Vector, delta::Integer)
11761176 end
11771177 newlen = len - delta
11781178 if newlen != 0 # if newlen==0 we could accidentally index past the memory
1179- newref = @inbounds GenericMemoryRef (a. ref, delta + 1 )
1179+ newref = @inbounds memoryref (a. ref, delta + 1 )
11801180 setfield! (a, :ref , newref)
11811181 end
11821182 setfield! (a, :size , (newlen,))
@@ -1491,16 +1491,16 @@ function sizehint!(a::Vector, sz::Integer; first::Bool=false, shrink::Bool=true)
14911491 end
14921492 newmem = array_new_memory (mem, sz)
14931493 if first
1494- newref = GenericMemoryRef (newmem, inc + 1 )
1494+ newref = memoryref (newmem, inc + 1 )
14951495 else
1496- newref = GenericMemoryRef (newmem)
1496+ newref = memoryref (newmem)
14971497 end
14981498 unsafe_copyto! (newref, ref, len)
14991499 setfield! (a, :ref , newref)
15001500 elseif first
15011501 _growbeg! (a, inc)
15021502 newref = getfield (a, :ref )
1503- newref = GenericMemoryRef (newref, inc + 1 )
1503+ newref = memoryref (newref, inc + 1 )
15041504 setfield! (a, :size , (len,)) # undo the size change from _growbeg!
15051505 setfield! (a, :ref , newref) # undo the offset change from _growbeg!
15061506 else # last
@@ -3075,15 +3075,17 @@ function _wrap(ref::MemoryRef{T}, dims::NTuple{N, Int}) where {T, N}
30753075 mem_len = length (mem) + 1 - memoryrefoffset (ref)
30763076 len = Core. checked_dims (dims... )
30773077 @boundscheck mem_len >= len || invalid_wrap_err (mem_len, dims, len)
3078- if N != 1 && ! (ref === GenericMemoryRef (mem) && len === mem_len)
3078+ if N != 1 && ! (ref === memoryref (mem) && len === mem_len)
30793079 mem = ccall (:jl_genericmemory_slice , Memory{T}, (Any, Ptr{Cvoid}, Int), mem, ref. ptr_or_offset, len)
3080- ref = MemoryRef (mem)
3080+ ref = memoryref (mem)
30813081 end
30823082 return ref
30833083end
30843084
3085- @noinline invalid_wrap_err (len, dims, proddims) = throw (DimensionMismatch (
3086- " Attempted to wrap a MemoryRef of length $len with an Array of size dims=$dims , which is invalid because prod(dims) = $proddims > $len , so that the array would have more elements than the underlying memory can store." ))
3085+ @noinline invalid_wrap_err (len, dims, proddims) = throw (DimensionMismatch (LazyString (
3086+ " Attempted to wrap a MemoryRef of length " , len, " with an Array of size dims=" , dims,
3087+ " which is invalid because prod(dims) = " , proddims, " > " , len,
3088+ " so that the array would have more elements than the underlying memory can store." )))
30873089
30883090@eval @propagate_inbounds function wrap (:: Type{Array} , m:: MemoryRef{T} , dims:: NTuple{N, Integer} ) where {T, N}
30893091 dims = convert (Dims, dims)
@@ -3093,7 +3095,7 @@ end
30933095
30943096@eval @propagate_inbounds function wrap (:: Type{Array} , m:: Memory{T} , dims:: NTuple{N, Integer} ) where {T, N}
30953097 dims = convert (Dims, dims)
3096- ref = _wrap (MemoryRef (m), dims)
3098+ ref = _wrap (memoryref (m), dims)
30973099 $ (Expr (:new , :(Array{T, N}), :ref , :dims ))
30983100end
30993101@eval @propagate_inbounds function wrap (:: Type{Array} , m:: MemoryRef{T} , l:: Integer ) where {T}
@@ -3103,11 +3105,11 @@ end
31033105end
31043106@eval @propagate_inbounds function wrap (:: Type{Array} , m:: Memory{T} , l:: Integer ) where {T}
31053107 dims = (Int (l),)
3106- ref = _wrap (MemoryRef (m), (l,))
3108+ ref = _wrap (memoryref (m), (l,))
31073109 $ (Expr (:new , :(Array{T, 1 }), :ref , :dims ))
31083110end
31093111@eval @propagate_inbounds function wrap (:: Type{Array} , m:: Memory{T} ) where {T}
3110- ref = MemoryRef (m)
3112+ ref = memoryref (m)
31113113 dims = (length (m),)
31123114 $ (Expr (:new , :(Array{T, 1 }), :ref , :dims ))
31133115end
0 commit comments