Fix vector of strings for Java
Change-Id: If032b450230b15224b2661836c8a740398d207c5
This commit is contained in:
parent
5da7bda826
commit
39d4b7e2bf
|
@ -41,7 +41,6 @@ public class Table {
|
||||||
|
|
||||||
// Create a java String from UTF-8 data stored inside the flatbuffer.
|
// Create a java String from UTF-8 data stored inside the flatbuffer.
|
||||||
protected String __string(int offset) {
|
protected String __string(int offset) {
|
||||||
offset += bb_pos;
|
|
||||||
offset += bb.getInt(offset);
|
offset += bb.getInt(offset);
|
||||||
return new String(bb.array(), offset + SIZEOF_INT, bb.getInt(offset), Charset.forName("UTF-8"));
|
return new String(bb.array(), offset + SIZEOF_INT, bb.getInt(offset), Charset.forName("UTF-8"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -247,7 +247,7 @@ static void GenStruct(StructDef &struct_def,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BASE_TYPE_STRING:
|
case BASE_TYPE_STRING:
|
||||||
code += offset_prefix + getter +"(o) : null";
|
code += offset_prefix + getter +"(o + bb_pos) : null";
|
||||||
break;
|
break;
|
||||||
case BASE_TYPE_VECTOR: {
|
case BASE_TYPE_VECTOR: {
|
||||||
auto vectortype = field.value.type.VectorType();
|
auto vectortype = field.value.type.VectorType();
|
||||||
|
|
|
@ -52,6 +52,8 @@ class JavaTest {
|
||||||
// We set up the same values as monsterdata.json:
|
// We set up the same values as monsterdata.json:
|
||||||
|
|
||||||
int str = fbb.createString("MyMonster");
|
int str = fbb.createString("MyMonster");
|
||||||
|
int test1 = fbb.createString("test1");
|
||||||
|
int test2 = fbb.createString("test2");
|
||||||
|
|
||||||
Monster.startInventoryVector(fbb, 5);
|
Monster.startInventoryVector(fbb, 5);
|
||||||
for (byte i = 4; i >=0; i--) fbb.addByte(i);
|
for (byte i = 4; i >=0; i--) fbb.addByte(i);
|
||||||
|
@ -66,6 +68,11 @@ class JavaTest {
|
||||||
Test.createTest(fbb, (short)30, (byte)40);
|
Test.createTest(fbb, (short)30, (byte)40);
|
||||||
int test4 = fbb.endVector();
|
int test4 = fbb.endVector();
|
||||||
|
|
||||||
|
Monster.startTestarrayofstringVector(fbb, 2);
|
||||||
|
fbb.addOffset(test2);
|
||||||
|
fbb.addOffset(test1);
|
||||||
|
int testArrayOfString = fbb.endVector();
|
||||||
|
|
||||||
Monster.startMonster(fbb);
|
Monster.startMonster(fbb);
|
||||||
Monster.addPos(fbb, Vec3.createVec3(fbb, 1.0f, 2.0f, 3.0f, 3.0,
|
Monster.addPos(fbb, Vec3.createVec3(fbb, 1.0f, 2.0f, 3.0f, 3.0,
|
||||||
(byte)4, (short)5, (byte)6));
|
(byte)4, (short)5, (byte)6));
|
||||||
|
@ -75,6 +82,7 @@ class JavaTest {
|
||||||
Monster.addTestType(fbb, (byte)1);
|
Monster.addTestType(fbb, (byte)1);
|
||||||
Monster.addTest(fbb, mon2);
|
Monster.addTest(fbb, mon2);
|
||||||
Monster.addTest4(fbb, test4);
|
Monster.addTest4(fbb, test4);
|
||||||
|
Monster.addTestarrayofstring(fbb, testArrayOfString);
|
||||||
int mon = Monster.endMonster(fbb);
|
int mon = Monster.endMonster(fbb);
|
||||||
|
|
||||||
fbb.finish(mon);
|
fbb.finish(mon);
|
||||||
|
@ -135,6 +143,10 @@ class JavaTest {
|
||||||
Test test_1 = monster.test4(1);
|
Test test_1 = monster.test4(1);
|
||||||
TestEq(monster.test4Length(), 2);
|
TestEq(monster.test4Length(), 2);
|
||||||
TestEq(test_0.a() + test_0.b() + test_1.a() + test_1.b(), 100);
|
TestEq(test_0.a() + test_0.b() + test_1.a() + test_1.b(), 100);
|
||||||
|
|
||||||
|
TestEq(monster.testarrayofstringLength(), 2);
|
||||||
|
TestEq(monster.testarrayofstring(0),"test1");
|
||||||
|
TestEq(monster.testarrayofstring(1),"test2");
|
||||||
}
|
}
|
||||||
|
|
||||||
static <T> void TestEq(T a, T b) {
|
static <T> void TestEq(T a, T b) {
|
||||||
|
|
|
@ -14,7 +14,7 @@ public class Monster extends Table {
|
||||||
public Vec3 pos(Vec3 obj) { int o = __offset(4); return o != 0 ? obj.__init(o + bb_pos, bb) : null; }
|
public Vec3 pos(Vec3 obj) { int o = __offset(4); return o != 0 ? obj.__init(o + bb_pos, bb) : null; }
|
||||||
public short mana() { int o = __offset(6); return o != 0 ? bb.getShort(o + bb_pos) : 150; }
|
public short mana() { int o = __offset(6); return o != 0 ? bb.getShort(o + bb_pos) : 150; }
|
||||||
public short hp() { int o = __offset(8); return o != 0 ? bb.getShort(o + bb_pos) : 100; }
|
public short hp() { int o = __offset(8); return o != 0 ? bb.getShort(o + bb_pos) : 100; }
|
||||||
public String name() { int o = __offset(10); return o != 0 ? __string(o) : null; }
|
public String name() { int o = __offset(10); return o != 0 ? __string(o + bb_pos) : null; }
|
||||||
public byte inventory(int j) { int o = __offset(14); return o != 0 ? bb.get(__vector(o) + j * 1) : 0; }
|
public byte inventory(int j) { int o = __offset(14); return o != 0 ? bb.get(__vector(o) + j * 1) : 0; }
|
||||||
public int inventoryLength() { int o = __offset(14); return o != 0 ? __vector_len(o) : 0; }
|
public int inventoryLength() { int o = __offset(14); return o != 0 ? __vector_len(o) : 0; }
|
||||||
public byte color() { int o = __offset(16); return o != 0 ? bb.get(o + bb_pos) : 8; }
|
public byte color() { int o = __offset(16); return o != 0 ? bb.get(o + bb_pos) : 8; }
|
||||||
|
|
Binary file not shown.
|
@ -32,5 +32,9 @@
|
||||||
a: 30,
|
a: 30,
|
||||||
b: 40
|
b: 40
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
testarrayofstring: [
|
||||||
|
"test1",
|
||||||
|
"test2"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue