From f049de94cf27a4e41c132b2fcc9a77ad66f09346 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Thu, 12 Jun 2014 22:43:19 +0200 Subject: [PATCH] mjc2wsl - field acces simplification and wraping in VAR statements --- src/mjc2wsl.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/mjc2wsl.java b/src/mjc2wsl.java index d582784..f754e4e 100644 --- a/src/mjc2wsl.java +++ b/src/mjc2wsl.java @@ -436,17 +436,18 @@ public class mjc2wsl{ case getfield: { int f = get2(); + prl(createStartVar("tempa")); prl(createTopEStack()); prl(createToEStack(createObject("tempa") + "[" + (f + 1) + "]")); + prl(createEndVar()); break; } case putfield: { int f = get2(); - // we need to use a temparray as a pointer, WSL - // otherwise tries to access it as a list of lists and fails - prl(createTopTwoEStack()); - prl("VAR < tempArray := " + createObject("tempb") + " > :"); - prl("tempArray[" + (f + 1) + "]:=tempa ENDVAR;"); + prl(createStartVar("tempa", "tempb")); + prl(createTopTwoEStack()); + prl(createObject("tempb") + "[" + (f + 1) + "]:=tempa;"); + prl(createEndVar()); break; } -- 2.25.1