Tweak to and fromPresrves for EmbeddedRef
This commit is contained in:
parent
416af8ff5f
commit
7b17f935ea
|
@ -375,6 +375,8 @@ proc toPreserves*[T](x: T): Value {.gcsafe.} =
|
|||
elif T is Ordinal:
|
||||
result = Value(kind: pkRegister, register: x.ord)
|
||||
assert result.register.T == x
|
||||
elif T is EmbeddedRef:
|
||||
result = embed(x)
|
||||
elif T is ptr | ref:
|
||||
if system.`==`(x, nil): result = initRecord("null")
|
||||
else: result = toPreserves(x[])
|
||||
|
@ -660,9 +662,8 @@ proc fromPreserves*[T](v: var T; pr: Value): bool {.gcsafe.} =
|
|||
if not result: break
|
||||
else: discard
|
||||
elif T is EmbeddedRef:
|
||||
if pr.kind == pkEmbedded and pr.embeddedRef of T:
|
||||
v = T(pr.embeddedRef)
|
||||
result = true
|
||||
v = T(pr.embeddedRef)
|
||||
result = true
|
||||
elif T is ref:
|
||||
if isNil(v): new(v)
|
||||
result = fromPreserves(v[], pr)
|
||||
|
|
Loading…
Reference in New Issue