From 7b17f935ea38d234792a88257bb4837d8d410ce8 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sun, 7 Jan 2024 17:37:28 +0200 Subject: [PATCH] Tweak to and fromPresrves for EmbeddedRef --- src/preserves.nim | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/preserves.nim b/src/preserves.nim index 1647bed..b65221c 100644 --- a/src/preserves.nim +++ b/src/preserves.nim @@ -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)