/* basic_types_bug604371.c generated by valac, the Vala compiler * generated from basic_types_bug604371.vala, do not modify */ #include #include #include #if !defined(VALA_EXTERN) #if defined(_MSC_VER) #define VALA_EXTERN __declspec(dllexport) extern #elif __GNUC__ >= 4 #define VALA_EXTERN __attribute__((visibility("default"))) extern #else #define VALA_EXTERN extern #endif #endif #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); static void _vala_main (void); static gint* _vala_array_dup1 (gint* self, gssize length); static gchar** _vala_array_dup2 (gchar** self, gssize length); static void _vala_array_destroy (gpointer array, gssize array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gssize array_length, GDestroyNotify destroy_func); static inline gpointer _vala_memdup2 (gconstpointer mem, gsize byte_size); const gint FOO[5][3] = {{1, 2}, {3, 4}, {5, 6}, {6, 7, 8}, {9}}; const gchar* BAR[5][3] = {{"a", "b"}, {"c", "d"}, {"e", "f"}, {"g", "h", "i"}, {"j"}}; static gint* _vala_array_dup1 (gint* self, gssize length) { if (length > 0) { return _vala_memdup2 (self, length * sizeof (gint)); } return NULL; } static gchar** _vala_array_dup2 (gchar** self, gssize length) { if (length >= 0) { gchar** result; gssize i; result = g_new0 (gchar*, length + 1); for (i = 0; i < length; i++) { gchar* _tmp0_; _tmp0_ = g_strdup (self[i]); result[i] = _tmp0_; } return result; } return NULL; } static void _vala_main (void) { gint _tmp0_; gint _tmp1_; gint _tmp2_; gint _tmp3_; gint* foo = NULL; gint* _tmp4_; gint _tmp4__length1; gint _tmp4__length2; gint foo_length1; gint foo_length2; gint _tmp5_; gint _tmp6_; gint _tmp7_; gint _tmp8_; gint _tmp9_; gint _tmp10_; const gchar* _tmp11_; const gchar* _tmp12_; gchar** bar = NULL; gchar** _tmp13_; gint _tmp13__length1; gint _tmp13__length2; gint bar_length1; gint bar_length2; gint _tmp14_; gint _tmp15_; const gchar* _tmp16_; const gchar* _tmp17_; _tmp0_ = G_N_ELEMENTS (FOO); _vala_assert (_tmp0_ == 5, "FOO.length[0] == 5"); _tmp1_ = G_N_ELEMENTS (FOO[0]); _vala_assert (_tmp1_ == 3, "FOO.length[1] == 3"); _tmp2_ = FOO[0][1]; _vala_assert (_tmp2_ == 2, "FOO[0,1] == 2"); _tmp3_ = FOO[3][2]; _vala_assert (_tmp3_ == 8, "FOO[3,2] == 8"); _tmp4_ = _vala_array_dup1 (FOO, G_N_ELEMENTS (FOO) * G_N_ELEMENTS (FOO[0])); _tmp4__length1 = G_N_ELEMENTS (FOO); _tmp4__length2 = G_N_ELEMENTS (FOO[0]); foo = _tmp4_; foo_length1 = _tmp4__length1; foo_length2 = _tmp4__length2; _tmp5_ = foo_length1; _vala_assert (_tmp5_ == 5, "foo.length[0] == 5"); _tmp6_ = foo_length2; _vala_assert (_tmp6_ == 3, "foo.length[1] == 3"); _tmp7_ = foo[(0 * foo_length2) + 1]; _vala_assert (_tmp7_ == 2, "foo[0,1] == 2"); _tmp8_ = foo[(3 * foo_length2) + 2]; _vala_assert (_tmp8_ == 8, "foo[3,2] == 8"); _tmp9_ = G_N_ELEMENTS (BAR); _vala_assert (_tmp9_ == 5, "BAR.length[0] == 5"); _tmp10_ = G_N_ELEMENTS (BAR[0]); _vala_assert (_tmp10_ == 3, "BAR.length[1] == 3"); _tmp11_ = BAR[0][1]; _vala_assert (g_strcmp0 (_tmp11_, "b") == 0, "BAR[0,1] == \"b\""); _tmp12_ = BAR[3][2]; _vala_assert (g_strcmp0 (_tmp12_, "i") == 0, "BAR[3,2] == \"i\""); _tmp13_ = _vala_array_dup2 (BAR, G_N_ELEMENTS (BAR) * G_N_ELEMENTS (BAR[0])); _tmp13__length1 = G_N_ELEMENTS (BAR); _tmp13__length2 = G_N_ELEMENTS (BAR[0]); bar = _tmp13_; bar_length1 = _tmp13__length1; bar_length2 = _tmp13__length2; _tmp14_ = bar_length1; _vala_assert (_tmp14_ == 5, "bar.length[0] == 5"); _tmp15_ = bar_length2; _vala_assert (_tmp15_ == 3, "bar.length[1] == 3"); _tmp16_ = bar[(0 * bar_length2) + 1]; _vala_assert (g_strcmp0 (_tmp16_, "b") == 0, "bar[0,1] == \"b\""); _tmp17_ = bar[(3 * bar_length2) + 2]; _vala_assert (g_strcmp0 (_tmp17_, "i") == 0, "bar[3,2] == \"i\""); bar = (_vala_array_free (bar, bar_length1 * bar_length2, (GDestroyNotify) g_free), NULL); foo = (g_free (foo), NULL); } int main (int argc, char ** argv) { _vala_main (); return 0; } static void _vala_array_destroy (gpointer array, gssize array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { gssize i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gssize array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } static inline gpointer _vala_memdup2 (gconstpointer mem, gsize byte_size) { gpointer new_mem; if (mem && byte_size != 0) { new_mem = g_malloc (byte_size); memcpy (new_mem, mem, byte_size); } else { new_mem = NULL; } return new_mem; }