diff options
author | Araq <rumpf_a@web.de> | 2014-02-27 20:47:44 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-02-27 20:47:44 +0100 |
commit | f0a70c7aaebeba4e6f637e50447d7f5a9dc5c698 (patch) | |
tree | f5f9e7e6f732d035ae1e0065d285eafac63488a5 /compiler/vm.nim | |
parent | d828b0b96eef8fd77a57a5b71f65e2ae9f6b1f30 (diff) | |
download | Nim-f0a70c7aaebeba4e6f637e50447d7f5a9dc5c698.tar.gz |
xmltree.`<>` macro works again
Diffstat (limited to 'compiler/vm.nim')
-rw-r--r-- | compiler/vm.nim | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/vm.nim b/compiler/vm.nim index 8411c4a4b..f9b143bce 100644 --- a/compiler/vm.nim +++ b/compiler/vm.nim @@ -173,12 +173,14 @@ proc asgnComplex(x: var TFullReg, y: TFullReg) = of rkRegisterAddr: x.regAddr = y.regAddr of rkNodeAddr: x.nodeAddr = y.nodeAddr -proc putIntoNode(n: PNode; x: TFullReg) = +proc putIntoNode(n: var PNode; x: TFullReg) = case x.kind of rkNone: discard of rkInt: n.intVal = x.intVal of rkFloat: n.floatVal = x.floatVal - of rkNode: n[] = x.node[] + of rkNode: + if nfIsRef in x.node.flags: n = x.node + else: n[] = x.node[] of rkRegisterAddr: putIntoNode(n, x.regAddr[]) of rkNodeAddr: n[] = x.nodeAddr[][] |