Skip to content

Commit 7cc0926

Browse files
authored
Fix pointer function (#27)
1 parent aaf37d8 commit 7cc0926

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/basic.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ function Base.empty(::MemoryView{T1, M}, ::Type{T2}) where {T1, T2, M}
6868
end
6969

7070
Base.empty(T::Type{<:MemoryView{E}}) where {E} = T(unsafe, memoryref(Memory{E}()), 0)
71-
Base.pointer(x::MemoryView{T}) where {T} = pointer(x.ref)
71+
Base.pointer(x::MemoryView{T}) where {T} = Ptr{T}(pointer(x.ref))
7272
Base.unsafe_convert(::Type{Ptr{T}}, v::MemoryView{T}) where {T} = pointer(v)
7373
Base.elsize(::Type{<:MemoryView{T}}) where {T} = Base.elsize(Memory{T})
7474
Base.sizeof(x::MemoryView) = Base.elsize(typeof(x)) * length(x)

test/runtests.jl

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,18 @@ end
108108
@test Base.mightalias(view(v1, 2:3), MemoryView(v1))
109109
end
110110

111+
@testset "Pointer" begin
112+
v = [0x0102, 0x0102]
113+
mem = MemoryView(v)
114+
GC.@preserve v mem begin
115+
@test pointer(v) === pointer(mem)
116+
end
117+
v = ["", ""]
118+
GC.@preserve v mem begin
119+
@test pointer(v) === pointer(ImmutableMemoryView(v))
120+
end
121+
end
122+
111123
# Span of views
112124
@testset "Span of views" begin
113125
mem = MemoryView("abc")
@@ -764,7 +776,7 @@ end
764776
@testset "LibDeflate" begin
765777
function test_view(view::MemoryView{UInt8}, mem::T, ::Type{T}) where {T}
766778
@test length(view) == sizeof(mem)
767-
@test pointer(view) === pointer(mem)
779+
@test UInt(pointer(view)) === UInt(pointer(mem))
768780
if T === LibDeflate.WriteableMemory
769781
@test view isa MutableMemoryView
770782
end

0 commit comments

Comments
 (0)