diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/system/deepcopy.nim | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/system/deepcopy.nim b/lib/system/deepcopy.nim index b1609252c..c137b3cf6 100644 --- a/lib/system/deepcopy.nim +++ b/lib/system/deepcopy.nim @@ -134,7 +134,7 @@ proc genericDeepCopyAux(dest, src: pointer, mt: PNimType; tab: var PtrTable) = else: let z = tab.get(s2) if z == nil: - when declared(usrToCell) and false: + when declared(usrToCell): let x = usrToCell(s2) let realType = x.typ let z = newObj(realType, realType.base.size) @@ -142,6 +142,11 @@ proc genericDeepCopyAux(dest, src: pointer, mt: PNimType; tab: var PtrTable) = tab.put(s2, z) genericDeepCopyAux(z, s2, realType.base, tab) else: + when false: + # addition check disabled + let x = usrToCell(s2) + let realType = x.typ + sysAssert realType == mt, " types do differ" # this version should work for any possible GC: let size = if mt.base.kind == tyObject: cast[ptr PNimType](s2)[].size else: mt.base.size let z = newObj(mt, size) |