@@ -654,10 +654,10 @@ def _attr_get(self, ri, var):
654
654
def attr_put (self , ri , var ):
655
655
if self .attr ['type' ] in scalars :
656
656
put_type = self .type
657
- ri .cw .p (f"for (unsigned int i = 0; i < { var } ->n_{ self .c_name } ; i++)" )
657
+ ri .cw .p (f"for (i = 0; i < { var } ->n_{ self .c_name } ; i++)" )
658
658
ri .cw .p (f"ynl_attr_put_{ put_type } (nlh, { self .enum_name } , { var } ->{ self .c_name } [i]);" )
659
659
elif 'type' not in self .attr or self .attr ['type' ] == 'nest' :
660
- ri .cw .p (f"for (unsigned int i = 0; i < { var } ->n_{ self .c_name } ; i++)" )
660
+ ri .cw .p (f"for (i = 0; i < { var } ->n_{ self .c_name } ; i++)" )
661
661
self ._attr_put_line (ri , var , f"{ self .nested_render_name } _put(nlh, " +
662
662
f"{ self .enum_name } , &{ var } ->{ self .c_name } [i])" )
663
663
else :
@@ -1644,11 +1644,23 @@ def put_req_nested_prototype(ri, struct, suffix=';'):
1644
1644
1645
1645
1646
1646
def put_req_nested (ri , struct ):
1647
+ local_vars = []
1648
+ init_lines = []
1649
+
1650
+ local_vars .append ('struct nlattr *nest;' )
1651
+ init_lines .append ("nest = ynl_attr_nest_start(nlh, attr_type);" )
1652
+
1653
+ for _ , arg in struct .member_list ():
1654
+ if arg .presence_type () == 'count' :
1655
+ local_vars .append ('unsigned int i;' )
1656
+ break
1657
+
1647
1658
put_req_nested_prototype (ri , struct , suffix = '' )
1648
1659
ri .cw .block_start ()
1649
- ri .cw .write_func_lvar ('struct nlattr *nest;' )
1660
+ ri .cw .write_func_lvar (local_vars )
1650
1661
1651
- ri .cw .p ("nest = ynl_attr_nest_start(nlh, attr_type);" )
1662
+ for line in init_lines :
1663
+ ri .cw .p (line )
1652
1664
1653
1665
for _ , arg in struct .member_list ():
1654
1666
arg .attr_put (ri , "obj" )
@@ -1850,6 +1862,11 @@ def print_req(ri):
1850
1862
local_vars += ['size_t hdr_len;' ,
1851
1863
'void *hdr;' ]
1852
1864
1865
+ for _ , attr in ri .struct ["request" ].member_list ():
1866
+ if attr .presence_type () == 'count' :
1867
+ local_vars += ['unsigned int i;' ]
1868
+ break
1869
+
1853
1870
print_prototype (ri , direction , terminate = False )
1854
1871
ri .cw .block_start ()
1855
1872
ri .cw .write_func_lvar (local_vars )
0 commit comments