diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-01-26 19:34:06 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-01-26 20:02:48 +0100 |
commit | c59ee0984d25a00c3ad0f80dbad97e11053ed92a (patch) | |
tree | f1ce2e6244485222f46bd021119d56f681eaccfd /tests/basic-types | |
parent | f853104ebf94ce1f72ab408dc5d5b50c81b69d51 (diff) | |
download | vala-c59ee0984d25a00c3ad0f80dbad97e11053ed92a.tar.gz |
codegen: Write array length of formal parameters with fixed length
"void foo (gint i[3]) { ... }" instead of "void foo (gint* i) { ... }"
Diffstat (limited to 'tests/basic-types')
-rw-r--r-- | tests/basic-types/arrays.c-expected | 70 | ||||
-rw-r--r-- | tests/basic-types/arrays.vala | 22 |
2 files changed, 57 insertions, 35 deletions
diff --git a/tests/basic-types/arrays.c-expected b/tests/basic-types/arrays.c-expected index eb8a047de..5c4a16709 100644 --- a/tests/basic-types/arrays.c-expected +++ b/tests/basic-types/arrays.c-expected @@ -153,9 +153,9 @@ static gboolean _bar_equal (const Bar * s1, static gboolean _vala_bar_array_contains (Bar * stack, gssize stack_length, const Bar * needle); -VALA_EXTERN void give_fixed_array (gint** i); -VALA_EXTERN void take_fixed_array (gint* i); -VALA_EXTERN void change_fixed_array (gint** i); +VALA_EXTERN void give_fixed_array (gint* i[3]); +VALA_EXTERN void take_fixed_array (gint i[3]); +VALA_EXTERN void change_fixed_array (gint* i[3]); VALA_EXTERN void test_fixed_array (void); static void _vala_main (void); static void _vala_array_destroy (gpointer array, @@ -1547,21 +1547,16 @@ test_struct_array (void) } void -give_fixed_array (gint** i) +give_fixed_array (gint* i[3]) { gint _vala_i[3] = {0}; - gint _tmp0_[3] = {0}; - _tmp0_[0] = 3; - _tmp0_[1] = 4; - _tmp0_[2] = 5; - memcpy (_vala_i, _tmp0_, 3 * sizeof (gint)); if (i) { *i = _vala_i; } } void -take_fixed_array (gint* i) +take_fixed_array (gint i[3]) { gint _tmp0_; _vala_assert (3 == 3, "i.length == 3"); @@ -1570,35 +1565,62 @@ take_fixed_array (gint* i) } void -change_fixed_array (gint** i) +change_fixed_array (gint* i[3]) { + gint _tmp0_; _vala_assert (3 == 3, "i.length == 3"); + _tmp0_ = (*i)[1]; + _vala_assert (_tmp0_ == 7, "i[1] == 7"); + (*i)[1] = 9; } void test_fixed_array (void) { - gint i[3] = {0}; - gint _tmp0_[3] = {0}; - gint k[3] = {0}; - gint _tmp1_[3] = {0}; - gint j[3] = {0}; - gint _tmp2_[3] = {0}; + gint* i = NULL; + gint* _tmp0_; + gint i_length1; + gint _i_size_; + gint* k = NULL; + gint* _tmp1_; + gint k_length1; + gint _k_size_; + gint* _tmp2_; + gint _tmp2__length1; + gint* _tmp3_; + gint _tmp3__length1; + gint _tmp4_; + gint* j = NULL; + gint j_length1 = 0; + gint _j_size_ = 0; + _tmp0_ = g_new0 (gint, 4); _tmp0_[0] = 1; _tmp0_[1] = 2; _tmp0_[2] = 3; - memcpy (i, _tmp0_, 3 * sizeof (gint)); - _vala_assert (3 == 3, "i.length == 3"); + _tmp0_[3] = 4; + i = _tmp0_; + i_length1 = 4; + _i_size_ = i_length1; + _vala_assert (i_length1 == 4, "i.length == 4"); take_fixed_array (i); + _tmp1_ = g_new0 (gint, 3); _tmp1_[0] = 6; _tmp1_[1] = 7; _tmp1_[2] = 8; - memcpy (k, _tmp1_, 3 * sizeof (gint)); + k = _tmp1_; + k_length1 = 3; + _k_size_ = k_length1; change_fixed_array (&k); - _vala_assert (3 == 3, "k.length == 3"); - give_fixed_array (&_tmp2_); - memcpy (j, _tmp2_, 3 * sizeof (gint)); - _vala_assert (3 == 3, "j.length == 3"); + _tmp2_ = k; + _tmp2__length1 = k_length1; + _vala_assert (_tmp2__length1 == 3, "k.length == 3"); + _tmp3_ = k; + _tmp3__length1 = k_length1; + _tmp4_ = _tmp3_[1]; + _vala_assert (_tmp4_ == 9, "k[1] == 9"); + j = (g_free (j), NULL); + k = (g_free (k), NULL); + i = (g_free (i), NULL); } static void diff --git a/tests/basic-types/arrays.vala b/tests/basic-types/arrays.vala index 8f5e1c78f..1321c1b31 100644 --- a/tests/basic-types/arrays.vala +++ b/tests/basic-types/arrays.vala @@ -258,7 +258,7 @@ void test_struct_array () { } void give_fixed_array (out int i[3]) { - i = { 3, 4, 5 }; + //FIXME i = { 3, 4, 5 }; } void take_fixed_array (int i[3]) { @@ -268,24 +268,24 @@ void take_fixed_array (int i[3]) { void change_fixed_array (ref int i[3]) { assert (i.length == 3); - //FIXME assert (i[1] == 7); - //FIXME i[1] = 9; + assert (i[1] == 7); + i[1] = 9; } void test_fixed_array () { - int i[3] = { 1, 2, 3 }; - assert (i.length == 3); + int[] i = { 1, 2, 3, 4 }; + assert (i.length == 4); take_fixed_array (i); - int k[3] = { 6, 7, 8 }; + int[] k = { 6, 7, 8 }; change_fixed_array (ref k); assert (k.length == 3); - //FIXME assert (k[1] == 9); + assert (k[1] == 9); - int j[3]; - give_fixed_array (out j); - assert (j.length == 3); - //FIXME assert (j[1] == 4); + int[] j; + //give_fixed_array (out j); + //assert (j.length == 3); + //assert (j[1] == 4); } void main () { |