Skip to content

Commit ee4145d

Browse files
committed
Add Reference constructors
1 parent 1ddedc8 commit ee4145d

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/ManualMemory.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,12 @@ end
5050

5151
@inline store!(p::Ptr{T}, v) where {T} = store!(p, convert(T, v))
5252

53-
mutable struct Reference{T}; data::T; end
53+
mutable struct Reference{T}
54+
data::T
55+
56+
Reference{T}() where {T} = new()
57+
Reference{T}(x) where {T} = new(x)
58+
end
5459
@inline load(p::Ptr{Reference{T}}) where {T} = getfield(ccall(:jl_value_ptr, Ref{Reference{T}}, (Ptr{Cvoid},), unsafe_load(Base.unsafe_convert(Ptr{Ptr{Cvoid}}, p))), :data)
5560
@inline dereference(r::Reference) = getfield(r, :data)
5661
@inline dereference(x) = x

0 commit comments

Comments
 (0)