From a8d2a990c783b274dc16f73f6c2c2ac4a5d96b3b Mon Sep 17 00:00:00 2001 From: yuyi Date: Sat, 2 Sep 2023 13:10:55 +0800 Subject: [PATCH] cgen: cleanup in struct_init_field() (#19259) --- vlib/v/gen/c/array.v | 6 +++--- vlib/v/gen/c/struct.v | 14 +++----------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/vlib/v/gen/c/array.v b/vlib/v/gen/c/array.v index d2b9f3e9c18f26..236a6c09e054e4 100644 --- a/vlib/v/gen/c/array.v +++ b/vlib/v/gen/c/array.v @@ -1313,13 +1313,13 @@ fn (mut g Gen) write_prepared_it(inp_info ast.Array, inp_elem_type string, tmp s fn (mut g Gen) fixed_array_var_init(expr ast.Expr, size int) { g.write('{') - for idx in 0 .. size { + for i in 0 .. size { if expr.is_auto_deref_var() { g.write('*') } g.expr(expr) - g.write('[${idx}]') - if idx != size - 1 { + g.write('[${i}]') + if i != size - 1 { g.write(', ') } } diff --git a/vlib/v/gen/c/struct.v b/vlib/v/gen/c/struct.v index 83670c7ae9bab6..98b82c7f31f9d8 100644 --- a/vlib/v/gen/c/struct.v +++ b/vlib/v/gen/c/struct.v @@ -556,17 +556,9 @@ fn (mut g Gen) struct_init_field(sfield ast.StructInitField, language ast.Langua inside_cast_in_heap := g.inside_cast_in_heap g.inside_cast_in_heap = 0 // prevent use of pointers in child structs - if field_type_sym.kind == .array_fixed && sfield.expr is ast.Ident { - fixed_array_info := field_type_sym.info as ast.ArrayFixed - g.write('{') - for i in 0 .. fixed_array_info.size { - g.expr(sfield.expr) - g.write('[${i}]') - if i != fixed_array_info.size - 1 { - g.write(', ') - } - } - g.write('}') + if field_type_sym.kind == .array_fixed && sfield.expr in [ast.Ident, ast.SelectorExpr] { + info := field_type_sym.info as ast.ArrayFixed + g.fixed_array_var_init(sfield.expr, info.size) } else { if sfield.typ != ast.voidptr_type && sfield.typ != ast.nil_type && (sfield.expected_type.is_ptr() && !sfield.expected_type.has_flag(.shared_f))