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