From 04b10f5a3a78aed27030a4e26dcf36921979114f Mon Sep 17 00:00:00 2001 From: Casper Date: Thu, 13 May 2021 17:57:36 -0400 Subject: [PATCH] Deprecate EnumVal.object (#6612) Co-authored-by: Casper Neo --- include/flatbuffers/reflection.h | 2 +- include/flatbuffers/reflection_generated.h | 13 -- reflection/reflection.fbs | 2 +- samples/monster.bfbs | Bin 1856 -> 1856 bytes src/idl_parser.cpp | 1 - tests/monster_test.bfbs | Bin 12944 -> 12864 bytes tests/monster_test_bfbs_generated.h | 146 ++++++++++----------- 7 files changed, 73 insertions(+), 91 deletions(-) diff --git a/include/flatbuffers/reflection.h b/include/flatbuffers/reflection.h index c6fa411af..fa2cf31fa 100644 --- a/include/flatbuffers/reflection.h +++ b/include/flatbuffers/reflection.h @@ -412,7 +412,7 @@ inline const reflection::Object &GetUnionType( FLATBUFFERS_ASSERT(type_field); auto union_type = GetFieldI(table, *type_field); auto enumval = enumdef->values()->LookupByKey(union_type); - return *enumval->object(); + return *schema.objects()->Get(enumval->union_type()->index()); } // Changes the contents of a string inside a FlatBuffer. FlatBuffer must diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 235146e16..32905046e 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -300,7 +300,6 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, VT_VALUE = 6, - VT_OBJECT = 8, VT_UNION_TYPE = 10, VT_DOCUMENTATION = 12 }; @@ -316,9 +315,6 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(int64_t val) const { return static_cast(value() > val) - static_cast(value() < val); } - const reflection::Object *object() const { - return GetPointer(VT_OBJECT); - } const reflection::Type *union_type() const { return GetPointer(VT_UNION_TYPE); } @@ -330,8 +326,6 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && VerifyField(verifier, VT_VALUE) && - VerifyOffset(verifier, VT_OBJECT) && - verifier.VerifyTable(object()) && VerifyOffset(verifier, VT_UNION_TYPE) && verifier.VerifyTable(union_type()) && VerifyOffset(verifier, VT_DOCUMENTATION) && @@ -351,9 +345,6 @@ struct EnumValBuilder { void add_value(int64_t value) { fbb_.AddElement(EnumVal::VT_VALUE, value, 0); } - void add_object(flatbuffers::Offset object) { - fbb_.AddOffset(EnumVal::VT_OBJECT, object); - } void add_union_type(flatbuffers::Offset union_type) { fbb_.AddOffset(EnumVal::VT_UNION_TYPE, union_type); } @@ -376,14 +367,12 @@ inline flatbuffers::Offset CreateEnumVal( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset name = 0, int64_t value = 0, - flatbuffers::Offset object = 0, flatbuffers::Offset union_type = 0, flatbuffers::Offset>> documentation = 0) { EnumValBuilder builder_(_fbb); builder_.add_value(value); builder_.add_documentation(documentation); builder_.add_union_type(union_type); - builder_.add_object(object); builder_.add_name(name); return builder_.Finish(); } @@ -392,7 +381,6 @@ inline flatbuffers::Offset CreateEnumValDirect( flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, int64_t value = 0, - flatbuffers::Offset object = 0, flatbuffers::Offset union_type = 0, const std::vector> *documentation = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; @@ -401,7 +389,6 @@ inline flatbuffers::Offset CreateEnumValDirect( _fbb, name__, value, - object, union_type, documentation__); } diff --git a/reflection/reflection.fbs b/reflection/reflection.fbs index 36230b206..c80f35672 100644 --- a/reflection/reflection.fbs +++ b/reflection/reflection.fbs @@ -48,7 +48,7 @@ table KeyValue { table EnumVal { name:string (required); value:long (key); - object:Object; // Will be deprecated in favor of union_type in the future. + object:Object (deprecated); union_type:Type; documentation:[string]; } diff --git a/samples/monster.bfbs b/samples/monster.bfbs index 7e1790c433c01e0ef5ecc2145e1ec5b30a6c69da..8af5da1ffccd3d274662a4751207772632e0df08 100644 GIT binary patch delta 94 zcmX@WcYu#ahJk^>$;~MkNHI+0P+^=iQCD8{3y`A%#LPfkz{J4thLwTgz{Es-!Kz>X n{{zJs8G!^)oFQl8LUkb-1{MYZAcup2hk*}BYcOoQm&67DV~!DA delta 94 zcmX@WcYu#Wf`Ng-$;~NvB998=f{BLmqCbEFDnQH(#3f7&3?En-7>-O#)fX)L_5VLm ojFAyY0L2*!CN5PMQ($0W5Mkh8;9(G8-~$Tk0I>(-#(PO@0H0eC;Q#;t diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index f04e5a3dd..bcbf476bb 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -3752,7 +3752,6 @@ Offset EnumVal::Serialize(FlatBufferBuilder *builder, : 0; return reflection::CreateEnumVal( *builder, name__, value, - union_type.struct_def ? union_type.struct_def->serialized_location : 0, type__, docs__); } diff --git a/tests/monster_test.bfbs b/tests/monster_test.bfbs index 12e0150cf97496beb5160b97149cf38c4469b980..8a03b638810bf45f507072930f194268582b608b 100644 GIT binary patch delta 606 zcmZ{hO-NKx7>3_-e-5LLri@NHVvxzqRi|-G2qAG{IBwE1XOR-3qB{u!x4M)zisRS9 zP2!@J3o(+`5<|2QDQ71Xx~P>aX_dz9J@-}$(g*MT`F@}8oRyi~=}0|*zFgl(A=+Xc zRTSjC*uv*rBw~+jdC{gWUDf+in65c>j*pcl*?fzVRmP)hMZXzWohsR@c8XqMr0Y}Ky4`|RBJTj;2z zq7*m#XPaS@Yo-ae#$Xq)9^}iu8&`+&+>VWI{q%hT!kkt$Ws)yj)j>dV(S&>FSo3$F zp)=M^pZOkoIMi?cPvnc;*f14VD>L3ii_{ABRBD{|ro~_Xhkq}VPE5ZGG7N6w^bZK{ zE!ZYM0(=j{%XVBf%dr!y8#}v7_CU(qdv%MY@I+Z1keu+nBctvuy}%>!AUEuU`YNy7 Zl>QJp7Mz4i$~QVPzTp&(dE2A&>EE7Uj{^Vz delta 731 zcmZ`%Jxo(k7(Ms$UU}4}G^Q3PNKDXT%d-?&8YfaCx`0GFI1m#E5GE2Gj3y>74!Sfn z-@?R1OdK>MCWMiJFgTUsCX0z>$&gMfHi)}dH3i0x#xV}+n!%pi1h&|jhCjm zpz2-Keyp0$Jg7N9SpzTH0KXkbM1b!e5NFiJ5b*5+@cBBho+Wa?y+vl3S+m6U7huG@&RoIF-t>Y2Pzx7{*JzLq`Js}JgOs508w zm%~g-d|hylS$bP$b(dO_=XzAF%6r}0b5t{ioRs2+oN+*`6HD?{50@5CjUgM1F}Is* zf}ozt$RZ6L@-J4B4XQNySOss<(zvbo9uWBtv3^ zgOGAC^f<2Y$s|1TOaueA9b4tl|2$