diff options
author | Kulikov Alexey <kulikov.alexey90@gmail.com> | 2019-02-26 05:45:29 +0700 |
---|---|---|
committer | Wouter van Oortmerssen <aardappel@gmail.com> | 2019-02-25 23:45:29 +0100 |
commit | 4e5152d886de963162ae81282240bc5377fa10ce (patch) | |
tree | b61e9ae17778f1449bcb2a81f46c63fa9bd798e0 /tests | |
parent | dc61512f20c034a3b949a9e5dfc06ec448a05f20 (diff) | |
download | flatbuffers-4e5152d886de963162ae81282240bc5377fa10ce.tar.gz flatbuffers-4e5152d886de963162ae81282240bc5377fa10ce.tar.bz2 flatbuffers-4e5152d886de963162ae81282240bc5377fa10ce.zip |
Java: Calculation of vtable and vtable size moved to the __init method. (#5210)
vtable and vtable size depends only on `Table#bb_pos` but calculated in
`Table#_offset` method on each field lookup.
Doing this with every call of `Table#__offset` is redundant.
These values can be read once with change of `Table#bb_pos` and reused
for any field lookup.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/MyGame/Example/Monster.java | 2 | ||||
-rw-r--r-- | tests/MyGame/Example/Referrable.java | 2 | ||||
-rw-r--r-- | tests/MyGame/Example/Stat.java | 2 | ||||
-rw-r--r-- | tests/MyGame/Example/TestSimpleTableWithEnum.java | 2 | ||||
-rw-r--r-- | tests/MyGame/Example/TypeAliases.java | 2 | ||||
-rw-r--r-- | tests/MyGame/Example2/Monster.java | 2 | ||||
-rw-r--r-- | tests/MyGame/InParentNamespace.java | 2 | ||||
-rw-r--r-- | tests/MyGame/MonsterExtra.java | 2 | ||||
-rw-r--r-- | tests/generate_code.bat | 2 | ||||
-rwxr-xr-x | tests/generate_code.sh | 2 | ||||
-rw-r--r-- | tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java | 2 | ||||
-rw-r--r-- | tests/namespace_test/NamespaceA/SecondTableInA.java | 2 | ||||
-rw-r--r-- | tests/namespace_test/NamespaceA/TableInFirstNS.java | 2 | ||||
-rw-r--r-- | tests/namespace_test/NamespaceC/TableInC.java | 2 | ||||
-rw-r--r-- | tests/union_vector/Attacker.java | 3 | ||||
-rw-r--r-- | tests/union_vector/BookReader.java | 1 | ||||
-rw-r--r-- | tests/union_vector/Movie.java | 4 | ||||
-rw-r--r-- | tests/union_vector/Rapunzel.java | 1 |
18 files changed, 21 insertions, 16 deletions
diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index c7339750..848f9a7a 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -15,7 +15,7 @@ public final class Monster extends Table { public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public Monster __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public Vec3 pos() { return pos(new Vec3()); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index 9398597e..6a117451 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class Referrable extends Table { public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public Referrable __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public long id() { int o = __offset(4); return o != 0 ? bb.getLong(o + bb_pos) : 0L; } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 73e2bc8f..c995eb1e 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class Stat extends Table { public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public Stat __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public String id() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index ded3be49..974e44ea 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; final class TestSimpleTableWithEnum extends Table { public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public TestSimpleTableWithEnum __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public byte color() { int o = __offset(4); return o != 0 ? bb.get(o + bb_pos) : 2; } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index f74a3231..cccb722a 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class TypeAliases extends Table { public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public TypeAliases __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public byte i8() { int o = __offset(4); return o != 0 ? bb.get(o + bb_pos) : 0; } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 69a15624..f65e7d4c 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class Monster extends Table { public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public Monster __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 5ac27c20..42784b79 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class InParentNamespace extends Table { public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public InParentNamespace __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 8c5679a1..fecfadde 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class MonsterExtra extends Table { public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public MonsterExtra __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public float testfNan() { int o = __offset(4); return o != 0 ? bb.getFloat(o + bb_pos) : Float.NaN; } diff --git a/tests/generate_code.bat b/tests/generate_code.bat index fed9c766..fd335512 100644 --- a/tests/generate_code.bat +++ b/tests/generate_code.bat @@ -17,7 +17,7 @@ if "%1"=="-b" set buildtype=%2 ..\%buildtype%\flatc.exe --cpp --java --csharp --go --binary --python --lobster --lua --js --rust --ts --php --grpc --gen-mutable --reflect-names --gen-object-api --gen-compare --no-includes --cpp-ptr-type flatbuffers::unique_ptr --no-fb-import -I include_test monster_test.fbs monsterdata_test.json || goto FAIL ..\%buildtype%\flatc.exe --cpp --java --csharp --go --binary --python --lobster --lua --js --rust --ts --php --gen-mutable --reflect-names --no-fb-import --cpp-ptr-type flatbuffers::unique_ptr -o namespace_test namespace_test/namespace_test1.fbs namespace_test/namespace_test2.fbs || goto FAIL -..\%buildtype%\flatc.exe --cpp --js --ts --php --gen-mutable --reflect-names --gen-object-api --gen-compare --cpp-ptr-type flatbuffers::unique_ptr -o union_vector ./union_vector/union_vector.fbs || goto FAIL +..\%buildtype%\flatc.exe --cpp --java --js --ts --php --gen-mutable --reflect-names --gen-object-api --gen-compare --cpp-ptr-type flatbuffers::unique_ptr -o union_vector ./union_vector/union_vector.fbs || goto FAIL ..\%buildtype%\flatc.exe -b --schema --bfbs-comments --bfbs-builtins -I include_test monster_test.fbs || goto FAIL ..\%buildtype%\flatc.exe --jsonschema --schema -I include_test monster_test.fbs || goto FAIL diff --git a/tests/generate_code.sh b/tests/generate_code.sh index 499e31ac..5d6b7ce4 100755 --- a/tests/generate_code.sh +++ b/tests/generate_code.sh @@ -17,7 +17,7 @@ set -e ../flatc --cpp --java --csharp --dart --go --binary --lobster --lua --python --js --ts --php --rust --grpc --gen-mutable --reflect-names --gen-object-api --gen-compare --no-includes --cpp-ptr-type flatbuffers::unique_ptr --no-fb-import -I include_test monster_test.fbs monsterdata_test.json ../flatc --cpp --java --csharp --dart --go --binary --lobster --lua --python --js --ts --php --rust --gen-mutable --reflect-names --no-fb-import --cpp-ptr-type flatbuffers::unique_ptr -o namespace_test namespace_test/namespace_test1.fbs namespace_test/namespace_test2.fbs -../flatc --cpp --js --ts --php --gen-mutable --reflect-names --gen-object-api --gen-compare --cpp-ptr-type flatbuffers::unique_ptr -o union_vector ./union_vector/union_vector.fbs +../flatc --cpp --java --js --ts --php --gen-mutable --reflect-names --gen-object-api --gen-compare --cpp-ptr-type flatbuffers::unique_ptr -o union_vector ./union_vector/union_vector.fbs ../flatc -b --schema --bfbs-comments --bfbs-builtins -I include_test monster_test.fbs ../flatc --jsonschema --schema -I include_test monster_test.fbs ../flatc --cpp --java --csharp --python --gen-mutable --reflect-names --gen-object-api --gen-compare --no-includes monster_extra.fbs || goto FAIL diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index 415fa693..f3216c1c 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class TableInNestedNS extends Table { public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public TableInNestedNS __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public int foo() { int o = __offset(4); return o != 0 ? bb.getInt(o + bb_pos) : 0; } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 7c56b882..8386446a 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class SecondTableInA extends Table { public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public SecondTableInA __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public NamespaceC.TableInC referToC() { return referToC(new NamespaceC.TableInC()); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index b03c4623..396d0b47 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class TableInFirstNS extends Table { public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public TableInFirstNS __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public NamespaceA.NamespaceB.TableInNestedNS fooTable() { return fooTable(new NamespaceA.NamespaceB.TableInNestedNS()); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index 56d49545..80d6a123 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -11,7 +11,7 @@ import com.google.flatbuffers.*; public final class TableInC extends Table { public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public TableInC __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public NamespaceA.TableInFirstNS referToA1() { return referToA1(new NamespaceA.TableInFirstNS()); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index d9a9bf32..ae84a4a2 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -9,10 +9,11 @@ import com.google.flatbuffers.*; public final class Attacker extends Table { public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public Attacker __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public int swordAttackDamage() { int o = __offset(4); return o != 0 ? bb.getInt(o + bb_pos) : 0; } + public boolean mutateSwordAttackDamage(int sword_attack_damage) { int o = __offset(4); if (o != 0) { bb.putInt(o + bb_pos, sword_attack_damage); return true; } else { return false; } } public static int createAttacker(FlatBufferBuilder builder, int sword_attack_damage) { diff --git a/tests/union_vector/BookReader.java b/tests/union_vector/BookReader.java index e23f82c1..1cb516e9 100644 --- a/tests/union_vector/BookReader.java +++ b/tests/union_vector/BookReader.java @@ -11,6 +11,7 @@ public final class BookReader extends Struct { public BookReader __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public int booksRead() { return bb.getInt(bb_pos + 0); } + public void mutateBooksRead(int books_read) { bb.putInt(bb_pos + 0, books_read); } public static int createBookReader(FlatBufferBuilder builder, int booksRead) { builder.prep(4, 4); diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 18d13ce1..75791d31 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -10,15 +10,17 @@ public final class Movie extends Table { public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } - public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } + public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public Movie __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public byte mainCharacterType() { int o = __offset(4); return o != 0 ? bb.get(o + bb_pos) : 0; } + public boolean mutateMainCharacterType(byte main_character_type) { int o = __offset(4); if (o != 0) { bb.put(o + bb_pos, main_character_type); return true; } else { return false; } } public Table mainCharacter(Table obj) { int o = __offset(6); return o != 0 ? __union(obj, o) : null; } public byte charactersType(int j) { int o = __offset(8); return o != 0 ? bb.get(__vector(o) + j * 1) : 0; } public int charactersTypeLength() { int o = __offset(8); return o != 0 ? __vector_len(o) : 0; } public ByteBuffer charactersTypeAsByteBuffer() { return __vector_as_bytebuffer(8, 1); } public ByteBuffer charactersTypeInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 8, 1); } + public boolean mutateCharactersType(int j, byte characters_type) { int o = __offset(8); if (o != 0) { bb.put(__vector(o) + j * 1, characters_type); return true; } else { return false; } } public Table characters(Table obj, int j) { int o = __offset(10); return o != 0 ? __union(obj, __vector(o) + j * 4 - bb_pos) : null; } public int charactersLength() { int o = __offset(10); return o != 0 ? __vector_len(o) : 0; } diff --git a/tests/union_vector/Rapunzel.java b/tests/union_vector/Rapunzel.java index 7c059f48..7cc66794 100644 --- a/tests/union_vector/Rapunzel.java +++ b/tests/union_vector/Rapunzel.java @@ -11,6 +11,7 @@ public final class Rapunzel extends Struct { public Rapunzel __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public int hairLength() { return bb.getInt(bb_pos + 0); } + public void mutateHairLength(int hair_length) { bb.putInt(bb_pos + 0, hair_length); } public static int createRapunzel(FlatBufferBuilder builder, int hairLength) { builder.prep(4, 4); |