pbc
pbc copied to clipboard
bug fix
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 ?
I think it’s a feature , it raises an error when you put undefined fields into the table.
如果在项目中遵从这个特性,那么会需要额外定义一份专门用来序列化的table并赋值,而不是使用原有的table, 这样的消耗非常不划算 i must define another table for serialize data if i comply this rule in my project, it very low efficiency