diff --git a/dart/test/monster_test_my_game.example_generated.dart b/dart/test/monster_test_my_game.example_generated.dart index e3eafe7d0..9a791353e 100644 --- a/dart/test/monster_test_my_game.example_generated.dart +++ b/dart/test/monster_test_my_game.example_generated.dart @@ -1332,22 +1332,15 @@ class Monster { mana: mana, hp: hp, name: name, - inventory: const fb.Uint8ListReader( - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 14), + inventory: inventory?.toList(), color: color, testType: testType, test: test?.unpack(), test4: test4?.map((e) => e.unpack()).toList(), - testarrayofstring: const fb.ListReader( - fb.StringReader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 24), + testarrayofstring: testarrayofstring?.toList(), testarrayoftables: testarrayoftables?.map((e) => e.unpack()).toList(), enemy: enemy?.unpack(), - testnestedflatbuffer: const fb.Uint8ListReader( - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 30), + testnestedflatbuffer: testnestedflatbuffer?.toList(), testempty: testempty?.unpack(), testbool: testbool, testhashs32Fnv1: testhashs32Fnv1, @@ -1358,67 +1351,33 @@ class Monster { testhashu32Fnv1a: testhashu32Fnv1a, testhashs64Fnv1a: testhashs64Fnv1a, testhashu64Fnv1a: testhashu64Fnv1a, - testarrayofbools: const fb.ListReader( - fb.BoolReader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 52), + testarrayofbools: testarrayofbools?.toList(), testf: testf, testf2: testf2, testf3: testf3, - testarrayofstring2: const fb.ListReader( - fb.StringReader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 60), - testarrayofsortedstruct: testarrayofsortedstruct - ?.map((e) => e.unpack()) - .toList(), - flex: const fb.Uint8ListReader( - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 64), + testarrayofstring2: testarrayofstring2?.toList(), + testarrayofsortedstruct: testarrayofsortedstruct?.map((e) => e.unpack()).toList(), + flex: flex?.toList(), test5: test5?.map((e) => e.unpack()).toList(), - vectorOfLongs: const fb.ListReader( - fb.Int64Reader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 68), - vectorOfDoubles: const fb.ListReader( - fb.Float64Reader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 70), + vectorOfLongs: vectorOfLongs?.toList(), + vectorOfDoubles: vectorOfDoubles?.toList(), parentNamespaceTest: parentNamespaceTest?.unpack(), vectorOfReferrables: vectorOfReferrables?.map((e) => e.unpack()).toList(), singleWeakReference: singleWeakReference, - vectorOfWeakReferences: const fb.ListReader( - fb.Uint64Reader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 78), - vectorOfStrongReferrables: vectorOfStrongReferrables - ?.map((e) => e.unpack()) - .toList(), + vectorOfWeakReferences: vectorOfWeakReferences?.toList(), + vectorOfStrongReferrables: vectorOfStrongReferrables?.map((e) => e.unpack()).toList(), coOwningReference: coOwningReference, - vectorOfCoOwningReferences: const fb.ListReader( - fb.Uint64Reader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 84), + vectorOfCoOwningReferences: vectorOfCoOwningReferences?.toList(), nonOwningReference: nonOwningReference, - vectorOfNonOwningReferences: const fb.ListReader( - fb.Uint64Reader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 88), + vectorOfNonOwningReferences: vectorOfNonOwningReferences?.toList(), anyUniqueType: anyUniqueType, anyUnique: anyUnique?.unpack(), anyAmbiguousType: anyAmbiguousType, anyAmbiguous: anyAmbiguous?.unpack(), - vectorOfEnums: const fb.ListReader( - Color.reader, - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 98), + vectorOfEnums: vectorOfEnums?.toList(), signedEnum: signedEnum, - testrequirednestedflatbuffer: const fb.Uint8ListReader( - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 102), - scalarKeySortedTables: scalarKeySortedTables - ?.map((e) => e.unpack()) - .toList(), + testrequirednestedflatbuffer: testrequirednestedflatbuffer?.toList(), + scalarKeySortedTables: scalarKeySortedTables?.map((e) => e.unpack()).toList(), nativeInline: nativeInline?.unpack(), longEnumNonEnumDefault: longEnumNonEnumDefault, longEnumNormalDefault: longEnumNormalDefault, @@ -2478,13 +2437,8 @@ class TypeAliases { u64: u64, f32: f32, f64: f64, - v8: const fb.Int8ListReader( - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 24), - vf64: const fb.ListReader( - fb.Float64Reader(), - lazy: false, - ).vTableGetNullable(_bc, _bcOffset, 26), + v8: v8?.toList(), + vf64: vf64?.toList(), ); static int pack(fb.Builder fbBuilder, TypeAliasesT? object) { diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index 9fcb03efc..b221e0496 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -611,20 +611,11 @@ class DartGenerator : public BaseGenerator { constructor_args += field_name + nullableValueAccessOperator + ".unpack()"; } else if (type.base_type == BASE_TYPE_VECTOR) { + constructor_args += field_name + nullableValueAccessOperator; if (type.VectorType().base_type == BASE_TYPE_STRUCT) { - constructor_args += field_name + nullableValueAccessOperator + - ".map((e) => e.unpack()).toList()"; - } else { - constructor_args += - GenReaderTypeName(field.value.type, struct_def.defined_namespace, - field, false, false); - constructor_args += ".vTableGet"; - std::string offset = NumToString(field.value.offset); - constructor_args += - isNullable - ? "Nullable(_bc, _bcOffset, " + offset + ")" - : "(_bc, _bcOffset, " + offset + ", " + defaultValue + ")"; + constructor_args += ".map((e) => e.unpack())"; } + constructor_args += ".toList()"; } else { constructor_args += field_name; } diff --git a/tests/monster_extra_my_game_generated.dart b/tests/monster_extra_my_game_generated.dart index 462d5ac20..77ce07f50 100644 --- a/tests/monster_extra_my_game_generated.dart +++ b/tests/monster_extra_my_game_generated.dart @@ -44,8 +44,8 @@ class MonsterExtra { f1: f1, f2: f2, f3: f3, - dvec: const fb.ListReader(fb.Float64Reader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 20), - fvec: const fb.ListReader(fb.Float32Reader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 22)); + dvec: dvec?.toList(), + fvec: fvec?.toList()); static int pack(fb.Builder fbBuilder, MonsterExtraT? object) { if (object == null) return 0; diff --git a/tests/monster_test_my_game.example_generated.dart b/tests/monster_test_my_game.example_generated.dart index 8d39c692e..81d6d9caa 100644 --- a/tests/monster_test_my_game.example_generated.dart +++ b/tests/monster_test_my_game.example_generated.dart @@ -1210,15 +1210,15 @@ class Monster { mana: mana, hp: hp, name: name, - inventory: const fb.Uint8ListReader(lazy: false).vTableGetNullable(_bc, _bcOffset, 14), + inventory: inventory?.toList(), color: color, testType: testType, test: test?.unpack(), test4: test4?.map((e) => e.unpack()).toList(), - testarrayofstring: const fb.ListReader(fb.StringReader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 24), + testarrayofstring: testarrayofstring?.toList(), testarrayoftables: testarrayoftables?.map((e) => e.unpack()).toList(), enemy: enemy?.unpack(), - testnestedflatbuffer: const fb.Uint8ListReader(lazy: false).vTableGetNullable(_bc, _bcOffset, 30), + testnestedflatbuffer: testnestedflatbuffer?.toList(), testempty: testempty?.unpack(), testbool: testbool, testhashs32Fnv1: testhashs32Fnv1, @@ -1229,32 +1229,32 @@ class Monster { testhashu32Fnv1a: testhashu32Fnv1a, testhashs64Fnv1a: testhashs64Fnv1a, testhashu64Fnv1a: testhashu64Fnv1a, - testarrayofbools: const fb.ListReader(fb.BoolReader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 52), + testarrayofbools: testarrayofbools?.toList(), testf: testf, testf2: testf2, testf3: testf3, - testarrayofstring2: const fb.ListReader(fb.StringReader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 60), + testarrayofstring2: testarrayofstring2?.toList(), testarrayofsortedstruct: testarrayofsortedstruct?.map((e) => e.unpack()).toList(), - flex: const fb.Uint8ListReader(lazy: false).vTableGetNullable(_bc, _bcOffset, 64), + flex: flex?.toList(), test5: test5?.map((e) => e.unpack()).toList(), - vectorOfLongs: const fb.ListReader(fb.Int64Reader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 68), - vectorOfDoubles: const fb.ListReader(fb.Float64Reader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 70), + vectorOfLongs: vectorOfLongs?.toList(), + vectorOfDoubles: vectorOfDoubles?.toList(), parentNamespaceTest: parentNamespaceTest?.unpack(), vectorOfReferrables: vectorOfReferrables?.map((e) => e.unpack()).toList(), singleWeakReference: singleWeakReference, - vectorOfWeakReferences: const fb.ListReader(fb.Uint64Reader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 78), + vectorOfWeakReferences: vectorOfWeakReferences?.toList(), vectorOfStrongReferrables: vectorOfStrongReferrables?.map((e) => e.unpack()).toList(), coOwningReference: coOwningReference, - vectorOfCoOwningReferences: const fb.ListReader(fb.Uint64Reader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 84), + vectorOfCoOwningReferences: vectorOfCoOwningReferences?.toList(), nonOwningReference: nonOwningReference, - vectorOfNonOwningReferences: const fb.ListReader(fb.Uint64Reader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 88), + vectorOfNonOwningReferences: vectorOfNonOwningReferences?.toList(), anyUniqueType: anyUniqueType, anyUnique: anyUnique?.unpack(), anyAmbiguousType: anyAmbiguousType, anyAmbiguous: anyAmbiguous?.unpack(), - vectorOfEnums: const fb.ListReader(Color.reader, lazy: false).vTableGetNullable(_bc, _bcOffset, 98), + vectorOfEnums: vectorOfEnums?.toList(), signedEnum: signedEnum, - testrequirednestedflatbuffer: const fb.Uint8ListReader(lazy: false).vTableGetNullable(_bc, _bcOffset, 102), + testrequirednestedflatbuffer: testrequirednestedflatbuffer?.toList(), scalarKeySortedTables: scalarKeySortedTables?.map((e) => e.unpack()).toList(), nativeInline: nativeInline?.unpack(), longEnumNonEnumDefault: longEnumNonEnumDefault, @@ -2161,8 +2161,8 @@ class TypeAliases { u64: u64, f32: f32, f64: f64, - v8: const fb.Int8ListReader(lazy: false).vTableGetNullable(_bc, _bcOffset, 24), - vf64: const fb.ListReader(fb.Float64Reader(), lazy: false).vTableGetNullable(_bc, _bcOffset, 26)); + v8: v8?.toList(), + vf64: vf64?.toList()); static int pack(fb.Builder fbBuilder, TypeAliasesT? object) { if (object == null) return 0;