repeate字段无数据,解包修改后,会影响后续所有此字段无数据的包。
message EnterMapNotice { required bool is_login = 1; repeated limit.Datum limit_dt = 2; }
local enData = protobuf.encode("ic.scene.EnterMapNotice", {is_login = true}) local deData1 = protobuf.decode("ic.scene.EnterMapNotice", enData) table.insert(deData1.limit_dt, {aaa = 1})
local enData = protobuf.encode("ic.scene.EnterMapNotice", {is_login = true}) local deData2 = protobuf.decode("ic.scene.EnterMapNotice", enData) print(deData2.limit_dt, deData2.limit_dt[1], deData2.limit_dt[1].aaa) ---这里deData2.limit_dt[1]应该没数据的,被打印出来了
对repeate字段,如果无数据,进行修改后。 会影响后续所有此字段无数据的包。
应该是都指向空的默认table,而非生成新的table的原因。
不管是否可修改,留给其他用户提个醒。
这是一个问题,但暂时不想改。如果修改会让只读的应用环境的性能下降。
发自我的 iPhone
在 2014年3月6日,下午5:28,dulm [email protected] 写道:
message EnterMapNotice { required bool is_login = 1; repeated limit.Datum limit_dt = 2; }
local enData = protobuf.encode("ic.scene.EnterMapNotice", {is_login = true}) local deData1 = protobuf.decode("ic.scene.EnterMapNotice", enData) table.insert(deData1.limit_dt, {aaa = 1})
local enData = protobuf.encode("ic.scene.EnterMapNotice", {is_login = true}) local deData2 = protobuf.decode("ic.scene.EnterMapNotice", enData) print(deData2.limit_dt, deData2.limit_dt[1], deData2.limit_dt[1].aaa) ---这里deData2.limit_dt[1]应该没数据的,被打印出来了
对repeate字段,如果无数据,进行修改后。 会影响后续所有此字段无数据的包。
应该是都指向空的默认table,而非生成新的table的原因。
不管是否可修改,留给其他用户提个醒。
— Reply to this email directly or view it on GitHub.