Skip to content

Commit 8afa265

Browse files
committed
do not skip empty messages
1 parent 73f7986 commit 8afa265

File tree

2 files changed

+3
-4
lines changed

2 files changed

+3
-4
lines changed

pb.c

+2-3
Original file line numberDiff line numberDiff line change
@@ -1474,7 +1474,7 @@ static void lpb_encode(lpb_Env *e, pb_Type *t) {
14741474
lpbE_map(e, f);
14751475
else if (f->repeated)
14761476
lpbE_repeated(e, f);
1477-
else if (!f->type || (f->type->field_count != 0 || f->oneof_idx > 0)) {
1477+
else if (!f->type || !f->type->is_dead) {
14781478
size_t ignoredlen;
14791479
lpbE_tagfield(e, f, &ignoredlen);
14801480
if (t->is_proto3) e->b->size -= ignoredlen;
@@ -1572,8 +1572,7 @@ static void lpbD_field(lpb_Env *e, pb_Field *f, uint32_t tag) {
15721572

15731573
case PB_Tmessage:
15741574
lpb_readbytes(L, s, &sv);
1575-
if (f->type == NULL
1576-
|| (f->type->field_count == 0 && f->oneof_idx == 0))
1575+
if (f->type == NULL || f->type->is_dead)
15771576
lua_pushnil(L);
15781577
else {
15791578
lpb_pushtypetable(L, e->LS, f->type);

test.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ function _G.test_depend.test()
158158

159159
load_depend(protoc.new())
160160
local t = { dep1 = { id = 1, name = "foo" }, other = 2 }
161-
check_msg("Depend2Msg", t, { other = 2 })
161+
check_msg("Depend2Msg", t, { dep1 = {}, other = 2 })
162162

163163
eq(protoc.new():loadfile "depend1.proto", true)
164164
local chunk = pb.encode("Depend2Msg", t)

0 commit comments

Comments
 (0)