diff options
Diffstat (limited to 'lib/system/deepcopy.nim')
-rw-r--r-- | lib/system/deepcopy.nim | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/system/deepcopy.nim b/lib/system/deepcopy.nim index e12f08842..65ba2278c 100644 --- a/lib/system/deepcopy.nim +++ b/lib/system/deepcopy.nim @@ -148,11 +148,11 @@ proc genericDeepCopyAux(dest, src: pointer, mt: PNimType; tab: var PtrTable) = 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) + let typ = if mt.base.kind == tyObject: cast[ptr PNimType](s2)[] else: mt.base + let z = newObj(mt, typ.size) unsureAsgnRef(cast[PPointer](dest), z) tab.put(s2, z) - genericDeepCopyAux(z, s2, mt.base, tab) + genericDeepCopyAux(z, s2, typ, tab) else: unsureAsgnRef(cast[PPointer](dest), z) of tyPtr: |