From dd7bfe04e894689f2c70c60b06a07fed988d560b Mon Sep 17 00:00:00 2001 From: Sven Robertz <sven@cs.lth.se> Date: Thu, 25 Apr 2013 12:43:53 +0200 Subject: [PATCH] fixed java gen for var size arrays --- compiler/Java_CodeGen.jrag | 2 +- examples/simple/Encoder.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/compiler/Java_CodeGen.jrag b/compiler/Java_CodeGen.jrag index 3331299..303cd7e 100644 --- a/compiler/Java_CodeGen.jrag +++ b/compiler/Java_CodeGen.jrag @@ -485,7 +485,7 @@ aspect Java_Class { } public String VariableSize.Java_emitEncoder(Java_env env, String name) { - env.println("e.encodeInt(" + name + ".length);"); + env.println("e.encodePacked32(" + name + ".length);"); return name + ".length"; } diff --git a/examples/simple/Encoder.java b/examples/simple/Encoder.java index 2da41c7..b209ea6 100644 --- a/examples/simple/Encoder.java +++ b/examples/simple/Encoder.java @@ -18,6 +18,7 @@ public class Encoder encoder = new LabCommEncoderChannel(out); theTwoInts.register(encoder); IntString.register(encoder); + TwoArrays.register(encoder); } public void doEncode() throws java.io.IOException { @@ -29,11 +30,24 @@ public class Encoder y.x = 37; y.s = "Testing, testing"; + TwoArrays ta = new TwoArrays(); + ta.fixed = new int[] {14, 25}; +// ta.variable = new int[][] {{1,2},{0x11,0x12},{0x21,0x22},{0x31,0x32}}; + ta.variable = new int[][] {{1,2, 3, 4},{0x21,0x22,0x23,0x24}}; + System.out.println("Encoding theTwoInts, a="+x.a+", b="+x.b); theTwoInts.encode(encoder, x); System.out.println("Encoding IntString, x="+y.x+", s="+y.s); IntString.encode(encoder, y); + + System.out.println("Encoding TwoArrays"); + for(int i = 0; i < ta.variable.length; i++) { + for(int j=0; j < ta.variable[0].length; j++) + System.out.println(ta.variable[i][j]); + System.out.println("---"); + } + TwoArrays.encode(encoder, ta); } -- GitLab