From a2ffccd740b3d357ad24312759ba1645c8d1d6f6 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 6 Jun 2017 12:33:01 +0930 Subject: [PATCH] tools/generate-wire.py: fix generation of array of assignable types. Signed-off-by: Rusty Russell --- tools/generate-wire.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/generate-wire.py b/tools/generate-wire.py index a4805388e..578bad149 100755 --- a/tools/generate-wire.py +++ b/tools/generate-wire.py @@ -243,8 +243,8 @@ class Message(object): else: subcalls.append('\tfor (size_t i = 0; i < {}; i++)' .format(num_elems)) - if f.is_assignable(): - subcalls.append('\t\t{}[i] = fromwire_{}(&cursor, plen);' + if f.fieldtype.is_assignable(): + subcalls.append('\t\t({})[i] = fromwire_{}(&cursor, plen);' .format(name, basetype)) else: ctx = "ctx, " if basetype in varlen_structs else "" @@ -319,8 +319,13 @@ class Message(object): .format(basetype, f.name, num_elems)) else: subcalls.append('\tfor (size_t i = 0; i < {}; i++)\n' - '\t\ttowire_{}(&p, {} + i);' - .format(num_elems, basetype, f.name)) + .format(num_elems)) + if f.fieldtype.is_assignable(): + subcalls.append('\t\ttowire_{}(&p, {}[i]);' + .format(basetype, f.name)) + else: + subcalls.append('\t\ttowire_{}(&p, {} + i);' + .format(basetype, f.name)) def print_towire(self,is_header): template = towire_header_templ if is_header else towire_impl_templ