/* methods_parameter_ref_delegate.c generated by valac, the Vala compiler * generated from methods_parameter_ref_delegate.vala, do not modify */ #include #if !defined(VALA_EXTERN) #if defined(_WIN32) || defined(__CYGWIN__) #define VALA_EXTERN __declspec(dllexport) extern #elif __GNUC__ >= 4 #define VALA_EXTERN __attribute__((visibility("default"))) extern #else #define VALA_EXTERN extern #endif #endif typedef gint (*FooFunc) (gpointer user_data); typedef struct _Block1Data Block1Data; #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); struct _Block1Data { int _ref_count_; gint i; }; VALA_EXTERN void foo (gint i, FooFunc* func, gpointer* func_target, GDestroyNotify* func_target_destroy_notify); static gint _vala_lambda0_ (void); static gint __vala_lambda0__foo_func (gpointer self); VALA_EXTERN gint bar (void); static void _vala_main (void); static gint _bar_foo_func (gpointer self); static Block1Data* block1_data_ref (Block1Data* _data1_); static void block1_data_unref (void * _userdata_); static gint _vala_lambda1_ (Block1Data* _data1_); static gint __vala_lambda1__foo_func (gpointer self); static gint _vala_lambda0_ (void) { gint result; result = 4711; return result; } static gint __vala_lambda0__foo_func (gpointer self) { gint result; result = _vala_lambda0_ (); return result; } void foo (gint i, FooFunc* func, gpointer* func_target, GDestroyNotify* func_target_destroy_notify) { _vala_assert ((*func) (*func_target) == i, "func () == i"); ((*func_target_destroy_notify) == NULL) ? NULL : ((*func_target_destroy_notify) (*func_target), NULL); *func = NULL; *func_target = NULL; *func_target_destroy_notify = NULL; *func = __vala_lambda0__foo_func; *func_target = NULL; *func_target_destroy_notify = NULL; } gint bar (void) { gint result; result = 23; return result; } static gint _bar_foo_func (gpointer self) { gint result; result = bar (); return result; } static Block1Data* block1_data_ref (Block1Data* _data1_) { g_atomic_int_inc (&_data1_->_ref_count_); return _data1_; } static void block1_data_unref (void * _userdata_) { Block1Data* _data1_; _data1_ = (Block1Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) { g_slice_free (Block1Data, _data1_); } } static gint _vala_lambda1_ (Block1Data* _data1_) { gint result; result = _data1_->i; return result; } static gint __vala_lambda1__foo_func (gpointer self) { gint result; result = _vala_lambda1_ (self); return result; } static void _vala_main (void) { { FooFunc func = NULL; gpointer func_target; GDestroyNotify func_target_destroy_notify; FooFunc _tmp0_; gpointer _tmp0__target; FooFunc _tmp1_; gpointer _tmp1__target; func = _bar_foo_func; func_target = NULL; func_target_destroy_notify = NULL; _tmp0_ = func; _tmp0__target = func_target; _vala_assert (_tmp0_ (_tmp0__target) == 23, "func () == 23"); foo (23, &func, &func_target, &func_target_destroy_notify); _tmp1_ = func; _tmp1__target = func_target; _vala_assert (_tmp1_ (_tmp1__target) == 4711, "func () == 4711"); (func_target_destroy_notify == NULL) ? NULL : (func_target_destroy_notify (func_target), NULL); func = NULL; func_target = NULL; func_target_destroy_notify = NULL; } { Block1Data* _data1_; FooFunc func = NULL; gpointer func_target; GDestroyNotify func_target_destroy_notify; FooFunc _tmp2_; gpointer _tmp2__target; FooFunc _tmp3_; gpointer _tmp3__target; _data1_ = g_slice_new0 (Block1Data); _data1_->_ref_count_ = 1; _data1_->i = 42; func = __vala_lambda1__foo_func; func_target = block1_data_ref (_data1_); func_target_destroy_notify = block1_data_unref; _tmp2_ = func; _tmp2__target = func_target; _vala_assert (_tmp2_ (_tmp2__target) == 42, "func () == 42"); foo (42, &func, &func_target, &func_target_destroy_notify); _tmp3_ = func; _tmp3__target = func_target; _vala_assert (_tmp3_ (_tmp3__target) == 4711, "func () == 4711"); (func_target_destroy_notify == NULL) ? NULL : (func_target_destroy_notify (func_target), NULL); func = NULL; func_target = NULL; func_target_destroy_notify = NULL; block1_data_unref (_data1_); _data1_ = NULL; } } int main (int argc, char ** argv) { _vala_main (); return 0; }