X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=mjc2wsl.git;a=blobdiff_plain;f=src%2Fmjc2wsl.java;h=f754e4ef1d6c3cf719ca58c08bdb80fa06466ccf;hp=d5827844496350ebc4d0bf248b819bccc2236f2f;hb=f049de94cf27a4e41c132b2fcc9a77ad66f09346;hpb=2563c4889961a70616ec701fcacddca365b3cbb8 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; }