Commit c23c620d authored by Maor Itzkovitch's avatar Maor Itzkovitch

applied struct parameter fix to Go and Python generated classes

parent 147fbb42
...@@ -332,7 +332,7 @@ static void StructBuilderArgs(const StructDef &struct_def, ...@@ -332,7 +332,7 @@ static void StructBuilderArgs(const StructDef &struct_def,
// don't clash, and to make it obvious these arguments are constructing // don't clash, and to make it obvious these arguments are constructing
// a nested struct, prefix the name with the struct name. // a nested struct, prefix the name with the struct name.
StructBuilderArgs(*field.value.type.struct_def, StructBuilderArgs(*field.value.type.struct_def,
(field.value.type.struct_def->name + "_").c_str(), (nameprefix + (field.name + "_")).c_str(),
code_ptr); code_ptr);
} else { } else {
std::string &code = *code_ptr; std::string &code = *code_ptr;
...@@ -365,7 +365,7 @@ static void StructBuilderBody(const StructDef &struct_def, ...@@ -365,7 +365,7 @@ static void StructBuilderBody(const StructDef &struct_def,
code += " builder.Pad(" + NumToString(field.padding) + ")\n"; code += " builder.Pad(" + NumToString(field.padding) + ")\n";
if (IsStruct(field.value.type)) { if (IsStruct(field.value.type)) {
StructBuilderBody(*field.value.type.struct_def, StructBuilderBody(*field.value.type.struct_def,
(field.value.type.struct_def->name + "_").c_str(), (nameprefix + (field.name + "_")).c_str(),
code_ptr); code_ptr);
} else { } else {
code += " builder.Prepend" + GenMethod(field) + "("; code += " builder.Prepend" + GenMethod(field) + "(";
......
...@@ -307,9 +307,9 @@ static void StructBuilderArgs(const StructDef &struct_def, ...@@ -307,9 +307,9 @@ static void StructBuilderArgs(const StructDef &struct_def,
if (IsStruct(field.value.type)) { if (IsStruct(field.value.type)) {
// Generate arguments for a struct inside a struct. To ensure names // Generate arguments for a struct inside a struct. To ensure names
// don't clash, and to make it obvious these arguments are constructing // don't clash, and to make it obvious these arguments are constructing
// a nested struct, prefix the name with the struct name. // a nested struct, prefix the name with the field name.
StructBuilderArgs(*field.value.type.struct_def, StructBuilderArgs(*field.value.type.struct_def,
(field.value.type.struct_def->name + "_").c_str(), (nameprefix + (field.name + "_")).c_str(),
code_ptr); code_ptr);
} else { } else {
std::string &code = *code_ptr; std::string &code = *code_ptr;
...@@ -341,7 +341,7 @@ static void StructBuilderBody(const StructDef &struct_def, ...@@ -341,7 +341,7 @@ static void StructBuilderBody(const StructDef &struct_def,
code += " builder.Pad(" + NumToString(field.padding) + ")\n"; code += " builder.Pad(" + NumToString(field.padding) + ")\n";
if (IsStruct(field.value.type)) { if (IsStruct(field.value.type)) {
StructBuilderBody(*field.value.type.struct_def, StructBuilderBody(*field.value.type.struct_def,
(field.value.type.struct_def->name + "_").c_str(), (nameprefix + (field.name + "_")).c_str(),
code_ptr); code_ptr);
} else { } else {
code += " builder.Prepend" + GenMethod(field) + "("; code += " builder.Prepend" + GenMethod(field) + "(";
......
...@@ -27,13 +27,13 @@ func (rcv *Vec3) Test3(obj *Test) *Test { ...@@ -27,13 +27,13 @@ func (rcv *Vec3) Test3(obj *Test) *Test {
return obj return obj
} }
func CreateVec3(builder *flatbuffers.Builder, x float32, y float32, z float32, test1 float64, test2 int8, Test_a int16, Test_b int8) flatbuffers.UOffsetT { func CreateVec3(builder *flatbuffers.Builder, x float32, y float32, z float32, test1 float64, test2 int8, test3_a int16, test3_b int8) flatbuffers.UOffsetT {
builder.Prep(16, 32) builder.Prep(16, 32)
builder.Pad(2) builder.Pad(2)
builder.Prep(2, 4) builder.Prep(2, 4)
builder.Pad(1) builder.Pad(1)
builder.PrependInt8(Test_b) builder.PrependInt8(test3_b)
builder.PrependInt16(Test_a) builder.PrependInt16(test3_a)
builder.Pad(1) builder.Pad(1)
builder.PrependInt8(test2) builder.PrependInt8(test2)
builder.PrependFloat64(test1) builder.PrependFloat64(test1)
......
...@@ -27,13 +27,13 @@ class Vec3(object): ...@@ -27,13 +27,13 @@ class Vec3(object):
return obj return obj
def CreateVec3(builder, x, y, z, test1, test2, Test_a, Test_b): def CreateVec3(builder, x, y, z, test1, test2, test3_a, test3_b):
builder.Prep(16, 32) builder.Prep(16, 32)
builder.Pad(2) builder.Pad(2)
builder.Prep(2, 4) builder.Prep(2, 4)
builder.Pad(1) builder.Pad(1)
builder.PrependInt8(Test_b) builder.PrependInt8(test3_b)
builder.PrependInt16(Test_a) builder.PrependInt16(test3_a)
builder.Pad(1) builder.Pad(1)
builder.PrependInt8(test2) builder.PrependInt8(test2)
builder.PrependFloat64(test1) builder.PrependFloat64(test1)
......
../flatc -c -j -n -g -b --gen-mutable --no-includes monster_test.fbs monsterdata_test.json ../flatc -c -j -n -g -b -p --gen-mutable --no-includes monster_test.fbs monsterdata_test.json
../flatc -b --schema monster_test.fbs ../flatc -b --schema monster_test.fbs
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment