fix bug in entity metadata encoding

This commit is contained in:
adman
2026-06-16 23:07:33 +02:00
parent 9e4f9409c5
commit f08684fb67
+2 -12
View File
@@ -364,26 +364,16 @@ func EntityMetadataLoopEncoder(g *Generator, vts ast.Expr, dataRaw any, name str
} }
/* /*
for k, v := range vts.Val { for _, v := range vts.Val {
WriteU8(w, uint8(k))
WriteData(w, v) WriteData(w, v)
} }
WriteU8(w, 0xFF) WriteU8(w, 0xFF)
*/ */
encodeid, err := g.VisitEncoder(Ident("k"), "u8", name)
if err != nil {
return
}
encodeV, err := g.VisitEncoder(Ident("v"), data.Type, name) encodeV, err := g.VisitEncoder(Ident("v"), data.Type, name)
if err != nil { if err != nil {
return return
} }
var innerstmts []ast.Stmt forStmt := ForRangeKV(Ident("_"), Ident("v"), vts, NewBlock(encodeV))
innerstmts = append(innerstmts, encodeid...)
innerstmts = append(innerstmts, encodeV...)
forStmt := ForRangeKV(Ident("k"), Ident("v"), vts, NewBlock(innerstmts))
encodeEndId, err := g.VisitEncoder(Call(Ident("uint8"), NumLit(data.EndVal)), "u8", name) encodeEndId, err := g.VisitEncoder(Call(Ident("uint8"), NumLit(data.EndVal)), "u8", name)
if err != nil { if err != nil {