From 275c7ccf82e03622258c135890c0419e70ee0884 Mon Sep 17 00:00:00 2001 From: Araq Date: Tue, 10 Sep 2013 22:04:12 +0200 Subject: fixes #575 --- lib/system/assign.nim | 2 ++ lib/system/channels.nim | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/system') diff --git a/lib/system/assign.nim b/lib/system/assign.nim index 19d4ebf57..3b43abcd1 100644 --- a/lib/system/assign.nim +++ b/lib/system/assign.nim @@ -73,6 +73,8 @@ proc genericAssignAux(dest, src: Pointer, mt: PNimType, shallow: bool) = # sequence reallocations: var pint = cast[ptr PNimType](dest) pint[] = cast[ptr PNimType](src)[] + if mt.base != nil: + genericAssignAux(dest, src, mt.base, shallow) genericAssignAux(dest, src, mt.node, shallow) of tyTuple: genericAssignAux(dest, src, mt.node, shallow) diff --git a/lib/system/channels.nim b/lib/system/channels.nim index f5bcdec03..d0294322a 100644 --- a/lib/system/channels.nim +++ b/lib/system/channels.nim @@ -120,7 +120,9 @@ proc storeAux(dest, src: Pointer, mt: PNimType, t: PRawChannel, # copy type field: var pint = cast[ptr PNimType](dest) # XXX use dynamic type here! - pint[] = mt + pint[] = mt + if mt.base != nil: + storeAux(dest, src, mt.base, t, mode) storeAux(dest, src, mt.node, t, mode) of tyTuple: storeAux(dest, src, mt.node, t, mode) -- cgit 1.4.1-2-gfad0