mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 09:54:16 +01:00
tools/generate-wire.py: fix loop logic for towire_xxx_array
has_len_fields() doesn't cover our blacklist of variable types, so if we have an array of them, this logic is wrong. This happens in the the bolt13 patch: ```C struct tlv_offer_tlvs_blindedpath { struct pubkey blinding; struct onionmsg_path **path; }; ``` Before: wire/gen_bolt13_tlv.c: ```C for (size_t i = 0; i < tal_count(r->blindedpath->path); i++) towire_onionmsg_path(&ptr, r->blindedpath->path + i); ``` After: ```C for (size_t i = 0; i < tal_count(r->blindedpath->path); i++) towire_onionmsg_path(&ptr, r->blindedpath->path[i]); ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
76813d6f90
commit
897c53ce1c
@ -53,7 +53,7 @@ bool ${enum_set['name']}_is_defined(u16 type)
|
||||
towire_${type_obj.name}_array(${ptr}, ${fieldname}, ${f.size('tal_count(' + fieldname + ')')});
|
||||
% else:
|
||||
for (size_t i = 0; i < ${f.size('tal_count(' + fieldname + ')')}; i++)
|
||||
% if type_obj.is_assignable() or type_obj.has_len_fields():
|
||||
% if type_obj.is_assignable() or type_obj.is_varsize():
|
||||
towire_${type_obj.name}(${ptr}, ${fieldname}[i]);
|
||||
% else:
|
||||
towire_${type_obj.name}(${ptr}, ${fieldname} + i);
|
||||
|
Loading…
Reference in New Issue
Block a user