Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
flatbuffers
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
flatbuffers
Commits
3a1f7761
Commit
3a1f7761
authored
Jul 14, 2016
by
BogDan Vatra
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Verify everything in one shot
parent
4b53762c
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
62 additions
and
32 deletions
+62
-32
flatbuffers.h
include/flatbuffers/flatbuffers.h
+6
-1
reflection_generated.h
include/flatbuffers/reflection_generated.h
+2
-2
monster_generated.h
samples/monster_generated.h
+31
-12
idl_gen_cpp.cpp
src/idl_gen_cpp.cpp
+14
-8
monster_test_generated.h
tests/monster_test_generated.h
+2
-2
namespace_test1_generated.h
tests/namespace_test/namespace_test1_generated.h
+1
-1
namespace_test2_generated.h
tests/namespace_test/namespace_test2_generated.h
+6
-6
No files found.
include/flatbuffers/flatbuffers.h
View file @
3a1f7761
...
@@ -1314,7 +1314,12 @@ class Verifier FLATBUFFERS_FINAL_CLASS {
...
@@ -1314,7 +1314,12 @@ class Verifier FLATBUFFERS_FINAL_CLASS {
}
}
// Verify this whole buffer, starting with root type T.
// Verify this whole buffer, starting with root type T.
template
<
typename
T
>
bool
VerifyBuffer
()
{
template
<
typename
T
>
bool
VerifyBuffer
(
const
char
*
identifier
)
{
if
(
identifier
&&
(
size_t
(
end_
-
buf_
)
<
2
*
sizeof
(
flatbuffers
::
uoffset_t
)
||
!
BufferHasIdentifier
(
buf_
,
identifier
)))
{
return
false
;
}
// Call T::Verify, which must be in the generated code for this type.
// Call T::Verify, which must be in the generated code for this type.
return
Verify
<
uoffset_t
>
(
buf_
)
&&
return
Verify
<
uoffset_t
>
(
buf_
)
&&
reinterpret_cast
<
const
T
*>
(
buf_
+
ReadScalar
<
uoffset_t
>
(
buf_
))
->
reinterpret_cast
<
const
T
*>
(
buf_
+
ReadScalar
<
uoffset_t
>
(
buf_
))
->
...
...
include/flatbuffers/reflection_generated.h
View file @
3a1f7761
...
@@ -478,12 +478,12 @@ inline flatbuffers::Offset<Schema> CreateSchema(flatbuffers::FlatBufferBuilder &
...
@@ -478,12 +478,12 @@ inline flatbuffers::Offset<Schema> CreateSchema(flatbuffers::FlatBufferBuilder &
inline
const
reflection
::
Schema
*
GetSchema
(
const
void
*
buf
)
{
return
flatbuffers
::
GetRoot
<
reflection
::
Schema
>
(
buf
);
}
inline
const
reflection
::
Schema
*
GetSchema
(
const
void
*
buf
)
{
return
flatbuffers
::
GetRoot
<
reflection
::
Schema
>
(
buf
);
}
inline
bool
VerifySchemaBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
reflection
::
Schema
>
();
}
inline
const
char
*
SchemaIdentifier
()
{
return
"BFBS"
;
}
inline
const
char
*
SchemaIdentifier
()
{
return
"BFBS"
;
}
inline
bool
SchemaBufferHasIdentifier
(
const
void
*
buf
)
{
return
flatbuffers
::
BufferHasIdentifier
(
buf
,
SchemaIdentifier
());
}
inline
bool
SchemaBufferHasIdentifier
(
const
void
*
buf
)
{
return
flatbuffers
::
BufferHasIdentifier
(
buf
,
SchemaIdentifier
());
}
inline
bool
VerifySchemaBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
reflection
::
Schema
>
(
SchemaIdentifier
());
}
inline
const
char
*
SchemaExtension
()
{
return
"bfbs"
;
}
inline
const
char
*
SchemaExtension
()
{
return
"bfbs"
;
}
inline
void
FinishSchemaBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
reflection
::
Schema
>
root
)
{
fbb
.
Finish
(
root
,
SchemaIdentifier
());
}
inline
void
FinishSchemaBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
reflection
::
Schema
>
root
)
{
fbb
.
Finish
(
root
,
SchemaIdentifier
());
}
...
...
samples/monster_generated.h
View file @
3a1f7761
...
@@ -135,15 +135,15 @@ struct MonsterBuilder {
...
@@ -135,15 +135,15 @@ struct MonsterBuilder {
};
};
inline
flatbuffers
::
Offset
<
Monster
>
CreateMonster
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
inline
flatbuffers
::
Offset
<
Monster
>
CreateMonster
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
const
Vec3
*
pos
=
0
,
const
Vec3
*
pos
=
0
,
int16_t
mana
=
150
,
int16_t
mana
=
150
,
int16_t
hp
=
100
,
int16_t
hp
=
100
,
flatbuffers
::
Offset
<
flatbuffers
::
String
>
name
=
0
,
flatbuffers
::
Offset
<
flatbuffers
::
String
>
name
=
0
,
flatbuffers
::
Offset
<
flatbuffers
::
Vector
<
uint8_t
>>
inventory
=
0
,
flatbuffers
::
Offset
<
flatbuffers
::
Vector
<
uint8_t
>>
inventory
=
0
,
Color
color
=
Color_Blue
,
Color
color
=
Color_Blue
,
flatbuffers
::
Offset
<
flatbuffers
::
Vector
<
flatbuffers
::
Offset
<
Weapon
>>>
weapons
=
0
,
flatbuffers
::
Offset
<
flatbuffers
::
Vector
<
flatbuffers
::
Offset
<
Weapon
>>>
weapons
=
0
,
Equipment
equipped_type
=
Equipment_NONE
,
Equipment
equipped_type
=
Equipment_NONE
,
flatbuffers
::
Offset
<
void
>
equipped
=
0
)
{
flatbuffers
::
Offset
<
void
>
equipped
=
0
)
{
MonsterBuilder
builder_
(
_fbb
);
MonsterBuilder
builder_
(
_fbb
);
builder_
.
add_equipped
(
equipped
);
builder_
.
add_equipped
(
equipped
);
builder_
.
add_weapons
(
weapons
);
builder_
.
add_weapons
(
weapons
);
...
@@ -157,6 +157,19 @@ inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder
...
@@ -157,6 +157,19 @@ inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder
return
builder_
.
Finish
();
return
builder_
.
Finish
();
}
}
inline
flatbuffers
::
Offset
<
Monster
>
CreateMonster
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
const
Vec3
*
pos
=
0
,
int16_t
mana
=
150
,
int16_t
hp
=
100
,
const
char
*
name
=
nullptr
,
const
std
::
vector
<
uint8_t
>
*
inventory
=
nullptr
,
Color
color
=
Color_Blue
,
const
std
::
vector
<
flatbuffers
::
Offset
<
Weapon
>>
*
weapons
=
nullptr
,
Equipment
equipped_type
=
Equipment_NONE
,
flatbuffers
::
Offset
<
void
>
equipped
=
0
)
{
return
CreateMonster
(
_fbb
,
pos
,
mana
,
hp
,
name
?
0
:
_fbb
.
CreateString
(
name
),
inventory
?
0
:
_fbb
.
CreateVector
<
uint8_t
>
(
*
inventory
),
color
,
weapons
?
0
:
_fbb
.
CreateVector
<
flatbuffers
::
Offset
<
Weapon
>>
(
*
weapons
),
equipped_type
,
equipped
);
}
struct
Weapon
FLATBUFFERS_FINAL_CLASS
:
private
flatbuffers
::
Table
{
struct
Weapon
FLATBUFFERS_FINAL_CLASS
:
private
flatbuffers
::
Table
{
enum
{
enum
{
VT_NAME
=
4
,
VT_NAME
=
4
,
...
@@ -189,14 +202,20 @@ struct WeaponBuilder {
...
@@ -189,14 +202,20 @@ struct WeaponBuilder {
};
};
inline
flatbuffers
::
Offset
<
Weapon
>
CreateWeapon
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
inline
flatbuffers
::
Offset
<
Weapon
>
CreateWeapon
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
flatbuffers
::
Offset
<
flatbuffers
::
String
>
name
=
0
,
flatbuffers
::
Offset
<
flatbuffers
::
String
>
name
=
0
,
int16_t
damage
=
0
)
{
int16_t
damage
=
0
)
{
WeaponBuilder
builder_
(
_fbb
);
WeaponBuilder
builder_
(
_fbb
);
builder_
.
add_name
(
name
);
builder_
.
add_name
(
name
);
builder_
.
add_damage
(
damage
);
builder_
.
add_damage
(
damage
);
return
builder_
.
Finish
();
return
builder_
.
Finish
();
}
}
inline
flatbuffers
::
Offset
<
Weapon
>
CreateWeapon
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
const
char
*
name
=
nullptr
,
int16_t
damage
=
0
)
{
return
CreateWeapon
(
_fbb
,
name
?
0
:
_fbb
.
CreateString
(
name
),
damage
);
}
inline
bool
VerifyEquipment
(
flatbuffers
::
Verifier
&
verifier
,
const
void
*
union_obj
,
Equipment
type
)
{
inline
bool
VerifyEquipment
(
flatbuffers
::
Verifier
&
verifier
,
const
void
*
union_obj
,
Equipment
type
)
{
switch
(
type
)
{
switch
(
type
)
{
case
Equipment_NONE
:
return
true
;
case
Equipment_NONE
:
return
true
;
...
@@ -209,7 +228,7 @@ inline const MyGame::Sample::Monster *GetMonster(const void *buf) { return flatb
...
@@ -209,7 +228,7 @@ inline const MyGame::Sample::Monster *GetMonster(const void *buf) { return flatb
inline
Monster
*
GetMutableMonster
(
void
*
buf
)
{
return
flatbuffers
::
GetMutableRoot
<
Monster
>
(
buf
);
}
inline
Monster
*
GetMutableMonster
(
void
*
buf
)
{
return
flatbuffers
::
GetMutableRoot
<
Monster
>
(
buf
);
}
inline
bool
VerifyMonsterBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
MyGame
::
Sample
::
Monster
>
();
}
inline
bool
VerifyMonsterBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
MyGame
::
Sample
::
Monster
>
(
nullptr
);
}
inline
void
FinishMonsterBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
MyGame
::
Sample
::
Monster
>
root
)
{
fbb
.
Finish
(
root
);
}
inline
void
FinishMonsterBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
MyGame
::
Sample
::
Monster
>
root
)
{
fbb
.
Finish
(
root
);
}
...
...
src/idl_gen_cpp.cpp
View file @
3a1f7761
...
@@ -158,14 +158,6 @@ class CppGenerator : public BaseGenerator {
...
@@ -158,14 +158,6 @@ class CppGenerator : public BaseGenerator {
code
+=
name
+
">(buf); }
\n\n
"
;
code
+=
name
+
">(buf); }
\n\n
"
;
}
}
// The root verifier:
code
+=
"inline bool Verify"
;
code
+=
name
;
code
+=
"Buffer(flatbuffers::Verifier &verifier) { "
"return verifier.VerifyBuffer<"
;
code
+=
cpp_qualified_name
+
">(); }
\n\n
"
;
if
(
parser_
.
file_identifier_
.
length
())
{
if
(
parser_
.
file_identifier_
.
length
())
{
// Return the identifier
// Return the identifier
code
+=
"inline const char *"
+
name
;
code
+=
"inline const char *"
+
name
;
...
@@ -179,6 +171,20 @@ class CppGenerator : public BaseGenerator {
...
@@ -179,6 +171,20 @@ class CppGenerator : public BaseGenerator {
code
+=
name
+
"Identifier()); }
\n\n
"
;
code
+=
name
+
"Identifier()); }
\n\n
"
;
}
}
// The root verifier:
code
+=
"inline bool Verify"
;
code
+=
name
;
code
+=
"Buffer(flatbuffers::Verifier &verifier) { "
"return verifier.VerifyBuffer<"
;
code
+=
cpp_qualified_name
+
">("
;
if
(
parser_
.
file_identifier_
.
length
())
code
+=
name
+
"Identifier()"
;
else
code
+=
"nullptr"
;
code
+=
"); }
\n\n
"
;
if
(
parser_
.
file_extension_
.
length
())
{
if
(
parser_
.
file_extension_
.
length
())
{
// Return the extension
// Return the extension
code
+=
"inline const char *"
+
name
;
code
+=
"inline const char *"
+
name
;
...
...
tests/monster_test_generated.h
View file @
3a1f7761
...
@@ -510,12 +510,12 @@ inline const MyGame::Example::Monster *GetMonster(const void *buf) { return flat
...
@@ -510,12 +510,12 @@ inline const MyGame::Example::Monster *GetMonster(const void *buf) { return flat
inline
Monster
*
GetMutableMonster
(
void
*
buf
)
{
return
flatbuffers
::
GetMutableRoot
<
Monster
>
(
buf
);
}
inline
Monster
*
GetMutableMonster
(
void
*
buf
)
{
return
flatbuffers
::
GetMutableRoot
<
Monster
>
(
buf
);
}
inline
bool
VerifyMonsterBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
MyGame
::
Example
::
Monster
>
();
}
inline
const
char
*
MonsterIdentifier
()
{
return
"MONS"
;
}
inline
const
char
*
MonsterIdentifier
()
{
return
"MONS"
;
}
inline
bool
MonsterBufferHasIdentifier
(
const
void
*
buf
)
{
return
flatbuffers
::
BufferHasIdentifier
(
buf
,
MonsterIdentifier
());
}
inline
bool
MonsterBufferHasIdentifier
(
const
void
*
buf
)
{
return
flatbuffers
::
BufferHasIdentifier
(
buf
,
MonsterIdentifier
());
}
inline
bool
VerifyMonsterBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
MyGame
::
Example
::
Monster
>
(
MonsterIdentifier
());
}
inline
const
char
*
MonsterExtension
()
{
return
"mon"
;
}
inline
const
char
*
MonsterExtension
()
{
return
"mon"
;
}
inline
void
FinishMonsterBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
MyGame
::
Example
::
Monster
>
root
)
{
fbb
.
Finish
(
root
,
MonsterIdentifier
());
}
inline
void
FinishMonsterBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
MyGame
::
Example
::
Monster
>
root
)
{
fbb
.
Finish
(
root
,
MonsterIdentifier
());
}
...
...
tests/namespace_test/namespace_test1_generated.h
View file @
3a1f7761
...
@@ -69,7 +69,7 @@ struct TableInNestedNSBuilder {
...
@@ -69,7 +69,7 @@ struct TableInNestedNSBuilder {
};
};
inline
flatbuffers
::
Offset
<
TableInNestedNS
>
CreateTableInNestedNS
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
inline
flatbuffers
::
Offset
<
TableInNestedNS
>
CreateTableInNestedNS
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
int32_t
foo
=
0
)
{
int32_t
foo
=
0
)
{
TableInNestedNSBuilder
builder_
(
_fbb
);
TableInNestedNSBuilder
builder_
(
_fbb
);
builder_
.
add_foo
(
foo
);
builder_
.
add_foo
(
foo
);
return
builder_
.
Finish
();
return
builder_
.
Finish
();
...
...
tests/namespace_test/namespace_test2_generated.h
View file @
3a1f7761
...
@@ -60,9 +60,9 @@ struct TableInFirstNSBuilder {
...
@@ -60,9 +60,9 @@ struct TableInFirstNSBuilder {
};
};
inline
flatbuffers
::
Offset
<
TableInFirstNS
>
CreateTableInFirstNS
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
inline
flatbuffers
::
Offset
<
TableInFirstNS
>
CreateTableInFirstNS
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
flatbuffers
::
Offset
<
NamespaceA
::
NamespaceB
::
TableInNestedNS
>
foo_table
=
0
,
flatbuffers
::
Offset
<
NamespaceA
::
NamespaceB
::
TableInNestedNS
>
foo_table
=
0
,
NamespaceA
::
NamespaceB
::
EnumInNestedNS
foo_enum
=
NamespaceA
::
NamespaceB
::
EnumInNestedNS_A
,
NamespaceA
::
NamespaceB
::
EnumInNestedNS
foo_enum
=
NamespaceA
::
NamespaceB
::
EnumInNestedNS_A
,
const
NamespaceA
::
NamespaceB
::
StructInNestedNS
*
foo_struct
=
0
)
{
const
NamespaceA
::
NamespaceB
::
StructInNestedNS
*
foo_struct
=
0
)
{
TableInFirstNSBuilder
builder_
(
_fbb
);
TableInFirstNSBuilder
builder_
(
_fbb
);
builder_
.
add_foo_struct
(
foo_struct
);
builder_
.
add_foo_struct
(
foo_struct
);
builder_
.
add_foo_table
(
foo_table
);
builder_
.
add_foo_table
(
foo_table
);
...
@@ -107,8 +107,8 @@ struct TableInCBuilder {
...
@@ -107,8 +107,8 @@ struct TableInCBuilder {
};
};
inline
flatbuffers
::
Offset
<
TableInC
>
CreateTableInC
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
inline
flatbuffers
::
Offset
<
TableInC
>
CreateTableInC
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
flatbuffers
::
Offset
<
NamespaceA
::
TableInFirstNS
>
refer_to_a1
=
0
,
flatbuffers
::
Offset
<
NamespaceA
::
TableInFirstNS
>
refer_to_a1
=
0
,
flatbuffers
::
Offset
<
NamespaceA
::
SecondTableInA
>
refer_to_a2
=
0
)
{
flatbuffers
::
Offset
<
NamespaceA
::
SecondTableInA
>
refer_to_a2
=
0
)
{
TableInCBuilder
builder_
(
_fbb
);
TableInCBuilder
builder_
(
_fbb
);
builder_
.
add_refer_to_a2
(
refer_to_a2
);
builder_
.
add_refer_to_a2
(
refer_to_a2
);
builder_
.
add_refer_to_a1
(
refer_to_a1
);
builder_
.
add_refer_to_a1
(
refer_to_a1
);
...
@@ -146,7 +146,7 @@ struct SecondTableInABuilder {
...
@@ -146,7 +146,7 @@ struct SecondTableInABuilder {
};
};
inline
flatbuffers
::
Offset
<
SecondTableInA
>
CreateSecondTableInA
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
inline
flatbuffers
::
Offset
<
SecondTableInA
>
CreateSecondTableInA
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
flatbuffers
::
Offset
<
NamespaceC
::
TableInC
>
refer_to_c
=
0
)
{
flatbuffers
::
Offset
<
NamespaceC
::
TableInC
>
refer_to_c
=
0
)
{
SecondTableInABuilder
builder_
(
_fbb
);
SecondTableInABuilder
builder_
(
_fbb
);
builder_
.
add_refer_to_c
(
refer_to_c
);
builder_
.
add_refer_to_c
(
refer_to_c
);
return
builder_
.
Finish
();
return
builder_
.
Finish
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment