Include builder.addOffset for vector of structs (#7470)

This commit is contained in:
Derek Bailey 2022-08-23 23:17:35 -07:00 committed by GitHub
parent fef2ffc4d0
commit eeb8fd60d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 4 deletions

View File

@ -1658,11 +1658,15 @@ class JavaGenerator : public BaseGenerator {
field.value.type.struct_def == nullptr field.value.type.struct_def == nullptr
? "builder.add" + GenMethod(field.value.type.VectorType()) + ? "builder.add" + GenMethod(field.value.type.VectorType()) +
"(" + variable + "[_j]);" "(" + variable + "[_j]);"
: type_name + ".pack(builder, " + variable + "[_j]);"; : "_unused_offset = " + type_name + ".pack(builder, " +
variable + "[_j]);";
code += " int _" + field_name + " = 0;\n"; code += " int _" + field_name + " = 0;\n";
code += " " + element_type_name + "[] " + variable + " = _o." + code += " " + element_type_name + "[] " + variable + " = _o." +
get_field + "();\n"; get_field + "();\n";
code += " if (" + variable + " != null) {\n"; code += " if (" + variable + " != null) {\n";
if (field.value.type.struct_def != nullptr) {
code += " int _unused_offset = 0;\n";
}
code += " " + namer_.Method("start", field) + code += " " + namer_.Method("start", field) +
"Vector(builder, " + variable + ".length);\n"; "Vector(builder, " + variable + ".length);\n";
code += " for (int _j = " + variable + code += " for (int _j = " + variable +

View File

@ -549,8 +549,9 @@ public final class Monster extends Table {
int _test4 = 0; int _test4 = 0;
MyGame.Example.TestT[] _oTest4 = _o.getTest4(); MyGame.Example.TestT[] _oTest4 = _o.getTest4();
if (_oTest4 != null) { if (_oTest4 != null) {
int _unused_offset = 0;
startTest4Vector(builder, _oTest4.length); startTest4Vector(builder, _oTest4.length);
for (int _j = _oTest4.length - 1; _j >=0; _j--) { MyGame.Example.Test.pack(builder, _oTest4[_j]);} for (int _j = _oTest4.length - 1; _j >=0; _j--) { _unused_offset = MyGame.Example.Test.pack(builder, _oTest4[_j]);}
_test4 = builder.endVector(); _test4 = builder.endVector();
} }
int _testarrayofstring = 0; int _testarrayofstring = 0;
@ -590,8 +591,9 @@ public final class Monster extends Table {
int _testarrayofsortedstruct = 0; int _testarrayofsortedstruct = 0;
MyGame.Example.AbilityT[] _oTestarrayofsortedstruct = _o.getTestarrayofsortedstruct(); MyGame.Example.AbilityT[] _oTestarrayofsortedstruct = _o.getTestarrayofsortedstruct();
if (_oTestarrayofsortedstruct != null) { if (_oTestarrayofsortedstruct != null) {
int _unused_offset = 0;
startTestarrayofsortedstructVector(builder, _oTestarrayofsortedstruct.length); startTestarrayofsortedstructVector(builder, _oTestarrayofsortedstruct.length);
for (int _j = _oTestarrayofsortedstruct.length - 1; _j >=0; _j--) { MyGame.Example.Ability.pack(builder, _oTestarrayofsortedstruct[_j]);} for (int _j = _oTestarrayofsortedstruct.length - 1; _j >=0; _j--) { _unused_offset = MyGame.Example.Ability.pack(builder, _oTestarrayofsortedstruct[_j]);}
_testarrayofsortedstruct = builder.endVector(); _testarrayofsortedstruct = builder.endVector();
} }
int _flex = 0; int _flex = 0;
@ -604,8 +606,9 @@ public final class Monster extends Table {
int _test5 = 0; int _test5 = 0;
MyGame.Example.TestT[] _oTest5 = _o.getTest5(); MyGame.Example.TestT[] _oTest5 = _o.getTest5();
if (_oTest5 != null) { if (_oTest5 != null) {
int _unused_offset = 0;
startTest5Vector(builder, _oTest5.length); startTest5Vector(builder, _oTest5.length);
for (int _j = _oTest5.length - 1; _j >=0; _j--) { MyGame.Example.Test.pack(builder, _oTest5[_j]);} for (int _j = _oTest5.length - 1; _j >=0; _j--) { _unused_offset = MyGame.Example.Test.pack(builder, _oTest5[_j]);}
_test5 = builder.endVector(); _test5 = builder.endVector();
} }
int _vectorOfLongs = 0; int _vectorOfLongs = 0;