pbc icon indicating copy to clipboard operation
pbc copied to clipboard

repeate字段无数据,解包修改后,会影响后续所有此字段无数据的包。

Open dulm opened this issue 11 years ago • 1 comments

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的原因。

不管是否可修改,留给其他用户提个醒。

dulm avatar Mar 06 '14 09:03 dulm

这是一个问题,但暂时不想改。如果修改会让只读的应用环境的性能下降。

发自我的 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.

cloudwu avatar Mar 06 '14 12:03 cloudwu