diff options
Diffstat (limited to 'lib/system/assign.nim')
-rwxr-xr-x | lib/system/assign.nim | 45 |
1 files changed, 4 insertions, 41 deletions
diff --git a/lib/system/assign.nim b/lib/system/assign.nim index 943d1f9bd..aa5cd3af3 100755 --- a/lib/system/assign.nim +++ b/lib/system/assign.nim @@ -7,43 +7,6 @@ # distribution, for details about the copyright. # -proc checkTypeInfo*(dest: Pointer, src: int, mt: pointer) -proc checkTypeInfo(dest: Pointer, src: int, n: ptr TNimNode) = - var - d = cast[TAddress](dest) - s = cast[TAddress](src) - case n.kind - of nkSlot: checkTypeInfo(cast[pointer](d +% n.offset), src, n.typ) - of nkList: - for i in 0..n.len-1: checkTypeInfo(dest, src, n.sons[i]) - of nkCase: - var m = selectBranch(dest, n) - if m != nil: checkTypeInfo(dest, src, m) - else: - c_fprintf(cstdout, "ugh memory corruption! in check type info %ld\n", src) - quit 1 - #of nkNone: assert(false) - -proc checkTypeInfo(dest: Pointer, src: int, mt: pointer) = - var mt = cast[PNimType](mt) - var - d = cast[TAddress](dest) - s = cast[TAddress](src) - assert(mt != nil) - case mt.Kind - of tyString: nil - of tySequence: nil - of tyObject, tyTuple, tyPureObject: - checkTypeInfo(dest, src, mt.node) - of tyArray, tyArrayConstr: - for i in 0..(mt.size div mt.base.size)-1: - checkTypeInfo(cast[pointer](d +% i*% mt.base.size), - src, mt.base) - of tyRef: nil - else: - nil # copy raw bits - - proc genericAssignAux(dest, src: Pointer, mt: PNimType, shallow: bool) proc genericAssignAux(dest, src: Pointer, n: ptr TNimNode, shallow: bool) = var @@ -61,10 +24,10 @@ proc genericAssignAux(dest, src: Pointer, n: ptr TNimNode, shallow: bool) = n.typ.size) var m = selectBranch(src, n) if m != nil: genericAssignAux(dest, src, m, shallow) - else: - echo "ugh memory corruption! ", n.kind - quit 1 - #of nkNone: assert(false) + of nkNone: assert(false) + #else: + # echo "ugh memory corruption! ", n.kind + # quit 1 proc genericAssignAux(dest, src: Pointer, mt: PNimType, shallow: bool) = var |