Skip to content

Commit

Permalink
Perform nil check on string fields when packing (google#7719)
Browse files Browse the repository at this point in the history
Co-authored-by: Derek Bailey <derekbailey@google.com>
  • Loading branch information
2 people authored and Wen Sun committed Dec 25, 2022
1 parent d8792cc commit c84ae5a
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
7 changes: 5 additions & 2 deletions src/idl_gen_go.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1054,8 +1054,11 @@ class GoGenerator : public BaseGenerator {
const std::string offset = field_var + "Offset";

if (IsString(field.value.type)) {
code +=
"\t" + offset + " := builder.CreateString(t." + field_field + ")\n";
code += "\t" + offset + " := flatbuffers.UOffsetT(0)\n";
code += "\tif t." + field_field + " != \"\" {\n";
code += "\t\t" + offset + " = builder.CreateString(t." + field_field +
")\n";
code += "\t}\n";
} else if (IsVector(field.value.type) &&
field.value.type.element == BASE_TYPE_UCHAR &&
field.value.type.enum_def == nullptr) {
Expand Down
5 changes: 4 additions & 1 deletion tests/MyGame/Example/Monster.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion tests/MyGame/Example/Stat.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit c84ae5a

Please sign in to comment.