pbc icon indicating copy to clipboard operation
pbc copied to clipboard

bug fix

Open hanjingo opened this issue 3 years ago • 2 comments

example:

test.lua

addressbook = {
	name = "Alice",
	id = 12345,
	phone = {
		{ number = "1301234567" },
		{ number = "87654321", type = "WORK" },
	}
}

root@ef956f202572:/usr/src/pbc/binding/lua53# lua test.lua test/addressbook.proto tutorial Profile nick_name [1] LABEL_OPTIONAL icon [2] LABEL_OPTIONAL Person name [1] LABEL_REQUIRED id [2] LABEL_REQUIRED email [3] LABEL_OPTIONAL phone [4] LABEL_REPEATED test [5] LABEL_REPEATED profile [6] LABEL_OPTIONAL Ext AddressBook person [1] LABEL_REPEATED Alice 12345 1301234567 HOME 87654321 WORK Alice 123 table: 0xaaaaf4c2eed0

---------------------split line-----------------------------

modify test.lua with:

addressbook = {
	name = "Alice",
	id = 12345,
	phone = {
		{ number = "1301234567" },
		{ number = "87654321", type = "WORK" },
	},
	c = 3,     -- <-i'm here
}

root@ef956f202572:/usr/src/pbc/binding/lua53# lua test.lua test/addressbook.proto tutorial Profile nick_name [1] LABEL_OPTIONAL icon [2] LABEL_OPTIONAL Person name [1] LABEL_REQUIRED id [2] LABEL_REQUIRED email [3] LABEL_OPTIONAL phone [4] LABEL_REPEATED test [5] LABEL_REPEATED profile [6] LABEL_OPTIONAL Ext AddressBook person [1] LABEL_REPEATED lua: ./protobuf.lua:308: c stack traceback: [C]: in function 'assert' ./protobuf.lua:308: in metamethod '__index' ./protobuf.lua:217: in upvalue 'encode_message' ./protobuf.lua:324: in function 'protobuf.encode' test.lua:35: in main chunk [C]: in ?

hanjingo avatar Dec 25 '21 14:12 hanjingo

I think it’s a feature , it raises an error when you put undefined fields into the table.

cloudwu avatar Dec 25 '21 23:12 cloudwu

如果在项目中遵从这个特性,那么会需要额外定义一份专门用来序列化的table并赋值,而不是使用原有的table, 这样的消耗非常不划算 i must define another table for serialize data if i comply this rule in my project, it very low efficiency

hanjingo avatar Dec 26 '21 02:12 hanjingo