From 7a6b2bf521e95097a92ec848001531b2dcf0f3fa Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Mon, 25 Sep 2017 11:44:58 -0700 Subject: [PATCH] Fixed TypeTable function not being inline. Change-Id: Id335980daf909e885ed26a21b64623b78d01fb49 Tested: on OS X. --- samples/monster_generated.h | 16 +++---- src/idl_gen_cpp.cpp | 4 +- tests/monster_test.bfbs | Bin 5400 -> 5440 bytes tests/monster_test_generated.h | 40 +++++++++--------- .../namespace_test1_generated.h | 10 ++--- .../namespace_test2_generated.h | 12 +++--- .../namespace_test2_generated.ts | 20 ++++----- tests/union_vector/union_vector_generated.h | 18 ++++---- 8 files changed, 60 insertions(+), 60 deletions(-) diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 0560d46ab..4d49171b9 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -605,13 +605,13 @@ inline void EquipmentUnion::Reset() { type = Equipment_NONE; } -flatbuffers::TypeTable *Vec3TypeTable(); +inline flatbuffers::TypeTable *Vec3TypeTable(); -flatbuffers::TypeTable *MonsterTypeTable(); +inline flatbuffers::TypeTable *MonsterTypeTable(); -flatbuffers::TypeTable *WeaponTypeTable(); +inline flatbuffers::TypeTable *WeaponTypeTable(); -flatbuffers::TypeTable *ColorTypeTable() { +inline flatbuffers::TypeTable *ColorTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_CHAR, 0, 0 }, { flatbuffers::ET_CHAR, 0, 0 }, @@ -631,7 +631,7 @@ flatbuffers::TypeTable *ColorTypeTable() { return &tt; } -flatbuffers::TypeTable *EquipmentTypeTable() { +inline flatbuffers::TypeTable *EquipmentTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_SEQUENCE, 0, -1 }, { flatbuffers::ET_SEQUENCE, 0, 0 } @@ -649,7 +649,7 @@ flatbuffers::TypeTable *EquipmentTypeTable() { return &tt; } -flatbuffers::TypeTable *Vec3TypeTable() { +inline flatbuffers::TypeTable *Vec3TypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_FLOAT, 0, -1 }, { flatbuffers::ET_FLOAT, 0, -1 }, @@ -667,7 +667,7 @@ flatbuffers::TypeTable *Vec3TypeTable() { return &tt; } -flatbuffers::TypeTable *MonsterTypeTable() { +inline flatbuffers::TypeTable *MonsterTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_SEQUENCE, 0, 0 }, { flatbuffers::ET_SHORT, 0, -1 }, @@ -704,7 +704,7 @@ flatbuffers::TypeTable *MonsterTypeTable() { return &tt; } -flatbuffers::TypeTable *WeaponTypeTable() { +inline flatbuffers::TypeTable *WeaponTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_STRING, 0, -1 }, { flatbuffers::ET_SHORT, 0, -1 } diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 729580a31..bf185646e 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -592,7 +592,7 @@ class CppGenerator : public BaseGenerator { void GenMiniReflectPre(const StructDef *struct_def) { code_.SetValue("NAME", struct_def->name); - code_ += "flatbuffers::TypeTable *{{NAME}}TypeTable();"; + code_ += "inline flatbuffers::TypeTable *{{NAME}}TypeTable();"; code_ += ""; } @@ -691,7 +691,7 @@ class CppGenerator : public BaseGenerator { code_.SetValue("REFS", rs); code_.SetValue("NAMES", ns); code_.SetValue("VALUES", vs); - code_ += "flatbuffers::TypeTable *{{NAME}}TypeTable() {"; + code_ += "inline flatbuffers::TypeTable *{{NAME}}TypeTable() {"; if (num_fields) { code_ += " static flatbuffers::TypeCode type_codes[] = {"; code_ += " {{TYPES}}"; diff --git a/tests/monster_test.bfbs b/tests/monster_test.bfbs index 843e308c5204d9c36bad66ae49ac2d37041b4cce..4cb46a7ca5a2f046e7e4daa2b4c5d2a7e1bc5bf5 100644 GIT binary patch literal 5440 zcmai2U1%KF6+SDiR;%AtY(-HWRUM~Bh+;%6slu3IWYu<*5X;6^)jkxfBkinr!tBg4 zJG+&P$wMf{lwd+BCQl`lU`hyn2*wYl48Tl*VFI2cSah` ztkWxw?%Z?F|2=c=*%=d&h2slnFkuYJsN|(6{W2uOScx12>;nt~ihy#LNGIl+=Ymq? z#K|SaOWY~In>i7uLm)xq*Cmlz(BFZe#a$wAJtJ}#d$U6#`Q4BWxChvP@G9mZXs7OO zJW(V6W8`M>Zwx@0)XDMLU&0U*v}xQU%zpsX0i=aGIkEYYS+k~&ZJ4#XV@(}#H${FQ zh9Uj=1qdjgcE{uJ=SpU&8;IusntwIopI$xTxsAZ`VaFKk7*e*X;+poww!Hr&4CA=G zgJZL5^@m@gW+sUA6`Af)-Gj(&_nmX=#wU^y>r&*>G{rIC#^ipfl z{^o%tz84Ttub7U=6X;q5F1B0qY70LG{vE(|81XYeKj0DI0$>tw7kjrbFJs;Z*aJw# ze|fWR9dT^4VKqc$b@`;L5K0`MSevqj1utB#3zE6R86@b)G zXB^K5ur^HBuyj!~%HDdjX1ReG*q&>wdo?Z&87R*zRff0rnzbH)=evM;6plCX@-g>r z;rS9?qblY*m}dc(K=TOm^@2zM*ay0Mm~X*>0MCf$wS@HJiyP+)<-5B|M!JQHWm;`ysyWwq=zQH=3w$;dy#(2%1UzIQcW z53aKWpX0gb8uAKwz9S16TR-@>(p7@%f^Z2<`#$FLpdXj{jE5g2>d2a{Q>yL78YsTX3?5L6##Eim;|*2x*0MdQyawiB0PB?=#d*#n(1U4P z9(0q#_y&33k~vi;M?uMY>t1~Ri?8?g%;Qmw*CLs5%qze?1a4GjGyYuAaqOU+L>$&U z&tW>q1nT5-GM(YOt#$M=kH}Xw8&%Y^)r#9XU;=j*d?WH=hOeONuJk1N8VSBD*nd{0 zGJJbqlDv@N zyR7*-SVwq%JaE#FJPN}>WM8_MSkZo!P{O1q;<0M=0PUo_0-gaG&*-@KU-gdWnfKJ; z0<3byF@v>crGh3B<05$3OQ!XG6zR)>hIwqcR*kxDfSz|h>of}lYXxm0KcCsJ8?~kr z*pBU5M&NnqQ;7Tj_eD^(8^+IV$1yCoY&7eJ?HXv2jC0WKo3I>Li|UPjiCzqvO0+G` ztElz_Y-;)9oJGBC*LQr5{uI0eDLzyy)E)3$0U!I2Nj&qc>60G4IQIhj-lFQgs6Sa( zXF>D{c-fnzW4Q}4!!}by$>Uk@xdSzjJxZE>LDSQ{t+QSY(1Bt7A?#gz+c+Ou2>^XJkPySKt zsF7p8a|(|~0m*lR4sgv5mi;pAq`lP3y#oN^>b~vywn}BWs_q3*??uJ8kqHjcj=g5m z22u9X3T;C!*RGfPQp*~kK3>o}>pCM44}DLt&)Nr6T-VF-b~G=jS}k47_iCNU39@L(zEylJ|W^B!>Rddt(AR`tj&{0Ny+K4p8$^O|meakI<# z4W;Um_dw47;eXEC#RSa;Xl@|J^d+6g)b%Q00+7nzWtiLU69y>b zzK!*PClrtPjPpC{CeJlFZtC;iilMHXtk3ZmA<7(8-*xbiV~!F-In04L54gSnI0$HS z?zA5}d%&wJBlBi^Xj^lTnvUIv>fRG&-x~ObppiMgbM#|J=Ot~6ZDK@U5u{@ zn1f8}Nyi_k#P_H8`_=SR`~%7T20qG*&g^CPl=^|h&m8La5#_!I-lv^8?Vye7>(mjE zH6wrAB0E#xVwCoU?K9Fgfh8K*eAB7}H%;?m27N<4OWsZd!c$72VROJ3#*Yd4`eD1!Fi%Q8B4 z^{vk=9I$<4hwM9!z@7BcQSBMX%b#w_AD=#vCbfE8byvK+{taM0$g*sR{zoV{N{?Bs zCK+eqTK#lM`kg7vl;iJ~>hp(_M#bH3%8(EG+%|l%s*mK!Ios%3N;B4eL5JSIm`(j! zf9Jnh)@fzAHv4HT#e&|{t)YZoI;mL^m3)M^bGszTwaam z+=9sxRy#_A0kd0p+4ll80d0qxHlD1{$JHq!<@7>fHXb`tO)IY?v*pH|6qNi3I`_Hx zb7Ro2581LK*s0y5e=pSJK3gcu-}-ZI$6vjlM;S}zYtS&%=I1k)7UF~DQlS>ty!P*c z`62WcOoyNq#-Gxkhx(wK%zr^IyMm8DTgkE~kRJRmy`;lpalc&P=I_gvOWJ zd-T7?vL)y!xKHSBp@8CVl=1KAUq{9-(e`7g&RPVm@cetsm(cEy(h%Chd^i2u&`mI( zFu%&u2M};Gcn^J4NTS#$>1ZyUZB*i2pH`>S z;`ChFAR%)N-CJL--j_-EBHnh23+1&4;x(7!E2qhYn)|KivDjRM=NoR)c(#BQpMpZF zeT)A04^4i*+@^K|{Bv%ig%9_)SdN#pzSHCJrgL||e%-xf*x(1fS0uYotrjk&#adde z$8)uMwSng*|Lyk@uiD^0vuqo0OxY7blA(8Jp1)o#B^Snt8^7<9EW2ayJ?jpv(UI^l zzT#fz?xPn|yX&{f$-`u*V0*-ZZ#@$&9^~&rCeMvW*>RiQt1fPh&-I>X!1CtT-2OH4 zk}J=ye7Sw&MDS}7@N!PxL&ihA0rGb0{^abONz<~9+gRz5|}m?0cW_0MYr_{hIcPuj={CzAqT}yAk8lJqopm&QAv}{B@7F^B#GS zWt+GO+DG^ZlH$V0m4!Mbq$_$q^cw^7v+z9Wo--cZpPi6mT|9~S=8EM)eWpR_z)5%}=Qn{4GQ9VtmS@i7x=i&N%sTO^|R4zwxG8Z)#qEZr3K1CPMw_3nb zQnuAi7s-F2u85E=zqIK|Mk259`~h_+T3KGX4qvDrtTgaJr z;R|&~@S|+i8PK_5{6?n`wbn~63-w3)IZxNA!az-Vp5S_S89h~t1iXB2!RbYsp0mwD z`3=w8s*9J|FVrUyc-f`6DkY1&uhOc{x`#h+9TT@n>eG}5^;;|0Y++5T3|Sro(4lHU zhRI(MbPAGQ#cGLDDoeDxV!7LO${59(s%X{7!inTF^$XQfS}j?aJ7M=gz71QIxT=RU zUB#(77BxCTy(C%kkqpp_n9g-uPIY$1dLO7}5+>+8Cs4B~R_7PE|DH$3PaDQIuXVR+ z>!0dKwZCesa4z!gPs1|3^r#e)f*$=iCv(PpvRZ42U-7h%*4#1guYSFI)IMV_A4|6U zG74>m+Ul*-6fP!1*z?dnNNxG6)jBcwM~2O&jigS$gLOLF?gr!bT2Xo}@`GZ^<1Cks zm@TXNORjuZ!kLR6Xa1hDeB(N_F1_Usowde~s2LB=kQWpIlBHNV1F5})oDR74ES#O> z%$2A$l36?F&;7o7OdIB;bY}Uc`1NPTphIi&RbKaTudm7IwcOx!-`T`Q^e;e<@c-F( zcCR_{b=HqUl6w#O5c&zE){V^d=%&53t{Bu=C|B&IKjLj@<(B>6yRi6Cc*>UG>(*T_ zf?tPK0WV(#`MOVo-X<-(YmD1}KPbMIp#vUg_0ao_gYSdCgwy4o$>Dy+Sc3DICFWOh znD_9n*5yOVP`?9ei{&%8<58a`j7Rstw@{}kc;(H|!Wnn9d@LTtl$wuy|54#L{=8fM zQw8d4KYitq%pt2u8CVP}4kSl$tnnk_K)M^I%z9o|ACJDKWU1Lg4(YTr%lmEy#7FiX zwQJ367@hprg~09mKFdS-Gna1*c%_FoRx^*tY&VWP?IGQTk$$V+lfw6^@v+vAH`diI zHu**wi%(GClAN+1Kl+qmzkOJ0wHr-d;l-<7I@wpJgZ^0$bG2o&cQvmB9{FO% z)?B|OAVUvwLaSd}6nTR@mwme-?WJCKtf^<)_ZHJ&lI4~!G|uOartkb?B>VTxY95MM x(LM#M50qcRyVCVHe@yUf5Sx{Y{Fg)BeCbKEZ-+rw`S$U;ekW CreateTableInNestedNS( return builder_.Finish(); } -flatbuffers::TypeTable *TableInNestedNSTypeTable(); +inline flatbuffers::TypeTable *TableInNestedNSTypeTable(); -flatbuffers::TypeTable *StructInNestedNSTypeTable(); +inline flatbuffers::TypeTable *StructInNestedNSTypeTable(); -flatbuffers::TypeTable *EnumInNestedNSTypeTable() { +inline flatbuffers::TypeTable *EnumInNestedNSTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_CHAR, 0, 0 }, { flatbuffers::ET_CHAR, 0, 0 }, @@ -143,7 +143,7 @@ flatbuffers::TypeTable *EnumInNestedNSTypeTable() { return &tt; } -flatbuffers::TypeTable *TableInNestedNSTypeTable() { +inline flatbuffers::TypeTable *TableInNestedNSTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_INT, 0, -1 } }; @@ -156,7 +156,7 @@ flatbuffers::TypeTable *TableInNestedNSTypeTable() { return &tt; } -flatbuffers::TypeTable *StructInNestedNSTypeTable() { +inline flatbuffers::TypeTable *StructInNestedNSTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_INT, 0, -1 }, { flatbuffers::ET_INT, 0, -1 } diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index a88d40eab..e3603a4df 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -212,21 +212,21 @@ namespace NamespaceC { namespace NamespaceA { -flatbuffers::TypeTable *TableInFirstNSTypeTable(); +inline flatbuffers::TypeTable *TableInFirstNSTypeTable(); } // namespace NamespaceA namespace NamespaceC { -flatbuffers::TypeTable *TableInCTypeTable(); +inline flatbuffers::TypeTable *TableInCTypeTable(); } // namespace NamespaceC namespace NamespaceA { -flatbuffers::TypeTable *SecondTableInATypeTable(); +inline flatbuffers::TypeTable *SecondTableInATypeTable(); -flatbuffers::TypeTable *TableInFirstNSTypeTable() { +inline flatbuffers::TypeTable *TableInFirstNSTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_SEQUENCE, 0, 0 }, { flatbuffers::ET_CHAR, 0, 1 }, @@ -252,7 +252,7 @@ flatbuffers::TypeTable *TableInFirstNSTypeTable() { namespace NamespaceC { -flatbuffers::TypeTable *TableInCTypeTable() { +inline flatbuffers::TypeTable *TableInCTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_SEQUENCE, 0, 0 }, { flatbuffers::ET_SEQUENCE, 0, 1 } @@ -275,7 +275,7 @@ flatbuffers::TypeTable *TableInCTypeTable() { namespace NamespaceA { -flatbuffers::TypeTable *SecondTableInATypeTable() { +inline flatbuffers::TypeTable *SecondTableInATypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_SEQUENCE, 0, 0 } }; diff --git a/tests/namespace_test/namespace_test2_generated.ts b/tests/namespace_test/namespace_test2_generated.ts index 8deae09c4..daaaab3cf 100644 --- a/tests/namespace_test/namespace_test2_generated.ts +++ b/tests/namespace_test/namespace_test2_generated.ts @@ -1,6 +1,6 @@ // automatically generated by the FlatBuffers compiler, do not modify -import * as NS9459827973991502386 from "./namespace_test1_generated"; +import * as NS4989953370203581498 from "./namespace_test1_generated"; /** * @constructor */ @@ -39,24 +39,24 @@ static getRootAsTableInFirstNS(bb:flatbuffers.ByteBuffer, obj?:TableInFirstNS):T * @param {NamespaceA.NamespaceB.TableInNestedNS=} obj * @returns {NamespaceA.NamespaceB.TableInNestedNS|null} */ -fooTable(obj?:NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS):NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS|null { +fooTable(obj?:NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS):NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS|null { var offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + return offset ? (obj || new NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; }; /** * @returns {NamespaceA.NamespaceB.EnumInNestedNS} */ -fooEnum():NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS { +fooEnum():NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS { var offset = this.bb.__offset(this.bb_pos, 6); - return offset ? /** @type {NamespaceA.NamespaceB.EnumInNestedNS} */ (this.bb.readInt8(this.bb_pos + offset)) : NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS.A; + return offset ? /** @type {NamespaceA.NamespaceB.EnumInNestedNS} */ (this.bb.readInt8(this.bb_pos + offset)) : NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS.A; }; /** * @param {NamespaceA.NamespaceB.EnumInNestedNS} value * @returns {boolean} */ -mutate_foo_enum(value:NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS):boolean { +mutate_foo_enum(value:NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS):boolean { var offset = this.bb.__offset(this.bb_pos, 6); if (offset === 0) { @@ -71,9 +71,9 @@ mutate_foo_enum(value:NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS * @param {NamespaceA.NamespaceB.StructInNestedNS=} obj * @returns {NamespaceA.NamespaceB.StructInNestedNS|null} */ -fooStruct(obj?:NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS):NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS|null { +fooStruct(obj?:NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS):NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS|null { var offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS).__init(this.bb_pos + offset, this.bb) : null; + return offset ? (obj || new NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS).__init(this.bb_pos + offset, this.bb) : null; }; /** @@ -95,8 +95,8 @@ static addFooTable(builder:flatbuffers.Builder, fooTableOffset:flatbuffers.Offse * @param {flatbuffers.Builder} builder * @param {NamespaceA.NamespaceB.EnumInNestedNS} fooEnum */ -static addFooEnum(builder:flatbuffers.Builder, fooEnum:NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS) { - builder.addFieldInt8(1, fooEnum, NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS.A); +static addFooEnum(builder:flatbuffers.Builder, fooEnum:NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS) { + builder.addFieldInt8(1, fooEnum, NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS.A); }; /** diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 3975ec8e9..3ebf411ce 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -600,15 +600,15 @@ inline void CharacterUnion::Reset() { type = Character_NONE; } -flatbuffers::TypeTable *AttackerTypeTable(); +inline flatbuffers::TypeTable *AttackerTypeTable(); -flatbuffers::TypeTable *RapunzelTypeTable(); +inline flatbuffers::TypeTable *RapunzelTypeTable(); -flatbuffers::TypeTable *BookReaderTypeTable(); +inline flatbuffers::TypeTable *BookReaderTypeTable(); -flatbuffers::TypeTable *MovieTypeTable(); +inline flatbuffers::TypeTable *MovieTypeTable(); -flatbuffers::TypeTable *CharacterTypeTable() { +inline flatbuffers::TypeTable *CharacterTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_SEQUENCE, 0, -1 }, { flatbuffers::ET_SEQUENCE, 0, 0 }, @@ -638,7 +638,7 @@ flatbuffers::TypeTable *CharacterTypeTable() { return &tt; } -flatbuffers::TypeTable *AttackerTypeTable() { +inline flatbuffers::TypeTable *AttackerTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_INT, 0, -1 } }; @@ -651,7 +651,7 @@ flatbuffers::TypeTable *AttackerTypeTable() { return &tt; } -flatbuffers::TypeTable *RapunzelTypeTable() { +inline flatbuffers::TypeTable *RapunzelTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_INT, 0, -1 } }; @@ -665,7 +665,7 @@ flatbuffers::TypeTable *RapunzelTypeTable() { return &tt; } -flatbuffers::TypeTable *BookReaderTypeTable() { +inline flatbuffers::TypeTable *BookReaderTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_INT, 0, -1 } }; @@ -679,7 +679,7 @@ flatbuffers::TypeTable *BookReaderTypeTable() { return &tt; } -flatbuffers::TypeTable *MovieTypeTable() { +inline flatbuffers::TypeTable *MovieTypeTable() { static flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_UTYPE, 0, 0 }, { flatbuffers::ET_SEQUENCE, 0, 0 },