/* errors_bug623049.c generated by valac, the Vala compiler * generated from errors_bug623049.vala, do not modify */ #include #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 #define TYPE_FOO (foo_get_type ()) #define TYPE_CLS_A (cls_a_get_type ()) #define CLS_A(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CLS_A, ClsA)) #define CLS_A_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CLS_A, ClsAClass)) #define IS_CLS_A(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CLS_A)) #define IS_CLS_A_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CLS_A)) #define CLS_A_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CLS_A, ClsAClass)) typedef struct _ClsA ClsA; typedef struct _ClsAClass ClsAClass; typedef struct _ClsAPrivate ClsAPrivate; enum { CLS_A_0_PROPERTY, CLS_A_NUM_PROPERTIES }; static GParamSpec* cls_a_properties[CLS_A_NUM_PROPERTIES]; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define TYPE_CLS_B (cls_b_get_type ()) #define CLS_B(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CLS_B, ClsB)) #define CLS_B_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CLS_B, ClsBClass)) #define IS_CLS_B(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CLS_B)) #define IS_CLS_B_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CLS_B)) #define CLS_B_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CLS_B, ClsBClass)) typedef struct _ClsB ClsB; typedef struct _ClsBClass ClsBClass; typedef struct _ClsBPrivate ClsBPrivate; enum { CLS_B_0_PROPERTY, CLS_B_NUM_PROPERTIES }; static GParamSpec* cls_b_properties[CLS_B_NUM_PROPERTIES]; typedef enum { FOO_BAR } Foo; #define FOO foo_quark () struct _ClsA { GObject parent_instance; ClsAPrivate * priv; }; struct _ClsAClass { GObjectClass parent_class; }; struct _ClsB { ClsA parent_instance; ClsBPrivate * priv; }; struct _ClsBClass { ClsAClass parent_class; }; static gpointer cls_a_parent_class = NULL; static gpointer cls_b_parent_class = NULL; VALA_EXTERN GQuark foo_quark (void); GType foo_get_type (void) G_GNUC_CONST ; VALA_EXTERN GType cls_a_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClsA, g_object_unref) VALA_EXTERN ClsA* cls_a_new (GError** error); VALA_EXTERN ClsA* cls_a_construct (GType object_type, GError** error); static GType cls_a_get_type_once (void); VALA_EXTERN GType cls_b_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClsB, g_object_unref) VALA_EXTERN ClsB* cls_b_new (GError** error); VALA_EXTERN ClsB* cls_b_construct (GType object_type, GError** error); static GType cls_b_get_type_once (void); static void _vala_main (void); GQuark foo_quark (void) { return g_quark_from_static_string ("foo-quark"); } static GType foo_get_type_once (void) { static const GEnumValue values[] = {{FOO_BAR, "FOO_BAR", "bar"}, {0, NULL, NULL}}; GType foo_type_id; foo_type_id = g_enum_register_static ("Foo", values); return foo_type_id; } GType foo_get_type (void) { static volatile gsize foo_type_id__once = 0; if (g_once_init_enter (&foo_type_id__once)) { GType foo_type_id; foo_type_id = foo_get_type_once (); g_once_init_leave (&foo_type_id__once, foo_type_id); } return foo_type_id__once; } ClsA* cls_a_construct (GType object_type, GError** error) { ClsA * self = NULL; GError* _tmp0_; GError* _inner_error0_ = NULL; self = (ClsA*) g_object_new (object_type, NULL); _tmp0_ = g_error_new_literal (FOO, FOO_BAR, "Test"); _inner_error0_ = _tmp0_; g_propagate_error (error, _inner_error0_); _g_object_unref0 (self); return NULL; return self; } ClsA* cls_a_new (GError** error) { return cls_a_construct (TYPE_CLS_A, error); } static void cls_a_class_init (ClsAClass * klass, gpointer klass_data) { cls_a_parent_class = g_type_class_peek_parent (klass); } static void cls_a_instance_init (ClsA * self, gpointer klass) { } static GType cls_a_get_type_once (void) { static const GTypeInfo g_define_type_info = { sizeof (ClsAClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) cls_a_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ClsA), 0, (GInstanceInitFunc) cls_a_instance_init, NULL }; GType cls_a_type_id; cls_a_type_id = g_type_register_static (G_TYPE_OBJECT, "ClsA", &g_define_type_info, 0); return cls_a_type_id; } GType cls_a_get_type (void) { static volatile gsize cls_a_type_id__once = 0; if (g_once_init_enter (&cls_a_type_id__once)) { GType cls_a_type_id; cls_a_type_id = cls_a_get_type_once (); g_once_init_leave (&cls_a_type_id__once, cls_a_type_id); } return cls_a_type_id__once; } ClsB* cls_b_construct (GType object_type, GError** error) { ClsB * self = NULL; GError* _inner_error0_ = NULL; self = (ClsB*) cls_a_construct (object_type, &_inner_error0_); if (G_UNLIKELY (_inner_error0_ != NULL)) { g_propagate_error (error, _inner_error0_); _g_object_unref0 (self); return NULL; } g_assert_not_reached (); return self; } ClsB* cls_b_new (GError** error) { return cls_b_construct (TYPE_CLS_B, error); } static void cls_b_class_init (ClsBClass * klass, gpointer klass_data) { cls_b_parent_class = g_type_class_peek_parent (klass); } static void cls_b_instance_init (ClsB * self, gpointer klass) { } static GType cls_b_get_type_once (void) { static const GTypeInfo g_define_type_info = { sizeof (ClsBClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) cls_b_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ClsB), 0, (GInstanceInitFunc) cls_b_instance_init, NULL }; GType cls_b_type_id; cls_b_type_id = g_type_register_static (TYPE_CLS_A, "ClsB", &g_define_type_info, 0); return cls_b_type_id; } GType cls_b_get_type (void) { static volatile gsize cls_b_type_id__once = 0; if (g_once_init_enter (&cls_b_type_id__once)) { GType cls_b_type_id; cls_b_type_id = cls_b_get_type_once (); g_once_init_leave (&cls_b_type_id__once, cls_b_type_id); } return cls_b_type_id__once; } static void _vala_main (void) { GError* _inner_error0_ = NULL; { ClsB* _tmp0_; ClsB* _tmp1_; _tmp0_ = cls_b_new (&_inner_error0_); _tmp1_ = _tmp0_; _g_object_unref0 (_tmp1_); if (G_UNLIKELY (_inner_error0_ != NULL)) { goto __catch0_g_error; } } goto __finally0; __catch0_g_error: { g_clear_error (&_inner_error0_); g_debug ("errors_bug623049.vala:23: Propagated error"); } __finally0: if (G_UNLIKELY (_inner_error0_ != NULL)) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return; } } int main (int argc, char ** argv) { _vala_main (); return 0; }