From b3ee52c0a7f32a642787b9373cef6e7467880dc1 Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Tue, 8 Jul 2014 17:14:02 -0700 Subject: [PATCH] Fixed vectors reserving wrong amount of space in Java. In the generated code, the type of the vector was used for the element size, instead of the vector element type. Change-Id: Ie16d5221a61474365292c948fd3af99e2a7716c7 Tested: on Windows. --- src/idl_gen_java.cpp | 2 +- tests/MyGame/Example/Monster.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index c3d0ba7..89eb051 100755 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -335,7 +335,7 @@ static void GenStruct(StructDef &struct_def, code += " public static void start" + MakeCamel(field.name); code += "Vector(FlatBufferBuilder builder, int numElems) "; code += "{ builder.startVector("; - code += NumToString(InlineSize(field.value.type)); + code += NumToString(InlineSize(field.value.type.VectorType())); code += ", numElems); }\n"; } } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index aa0bf7f..26bdf70 100755 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -36,7 +36,7 @@ public class Monster extends Table { public static void addHp(FlatBufferBuilder builder, short hp) { builder.addShort(2, hp, 100); } public static void addName(FlatBufferBuilder builder, int name) { builder.addOffset(3, name, 0); } public static void addInventory(FlatBufferBuilder builder, int inventory) { builder.addOffset(5, inventory, 0); } - public static void startInventoryVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems); } + public static void startInventoryVector(FlatBufferBuilder builder, int numElems) { builder.startVector(1, numElems); } public static void addColor(FlatBufferBuilder builder, byte color) { builder.addByte(6, color, 2); } public static void addTestType(FlatBufferBuilder builder, byte testType) { builder.addByte(7, testType, 0); } public static void addTest(FlatBufferBuilder builder, int test) { builder.addOffset(8, test, 0); } -- 2.7.4