-/* objects_bug667668.c generated by valac, the Vala compiler
- * generated from objects_bug667668.vala, do not modify */
+/* generics_class_property_override.c generated by valac, the Vala compiler
+ * generated from generics_class_property_override.vala, do not modify */
#include <glib-object.h>
#include <glib.h>
};
static GParamSpec* bar_properties[BAR_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_MANAM (manam_get_type ())
+#define MANAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MANAM, Manam))
+#define MANAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MANAM, ManamClass))
+#define IS_MANAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MANAM))
+#define IS_MANAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MANAM))
+#define MANAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MANAM, ManamClass))
+
+typedef struct _Manam Manam;
+typedef struct _ManamClass ManamClass;
+typedef struct _ManamPrivate ManamPrivate;
+enum {
+ MANAM_0_PROPERTY,
+ MANAM_FOO_PROPERTY,
+ MANAM_NUM_PROPERTIES
+};
+static GParamSpec* manam_properties[MANAM_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#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; }
gchar* _foo;
};
+struct _Manam {
+ Foo parent_instance;
+ ManamPrivate * priv;
+};
+
+struct _ManamClass {
+ FooClass parent_class;
+};
+
+struct _ManamPrivate {
+ gint _foo;
+};
+
static gint Foo_private_offset;
static gpointer foo_parent_class = NULL;
static gint Bar_private_offset;
static gpointer bar_parent_class = NULL;
+static gint Manam_private_offset;
+static gpointer manam_parent_class = NULL;
VALA_EXTERN GType foo_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Foo, g_object_unref)
guint property_id,
const GValue * value,
GParamSpec * pspec);
+VALA_EXTERN GType manam_get_type (void) G_GNUC_CONST ;
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (Manam, g_object_unref)
+VALA_EXTERN Manam* manam_new (void);
+VALA_EXTERN Manam* manam_construct (GType object_type);
+static void manam_finalize (GObject * obj);
+static GType manam_get_type_once (void);
+static void _vala_manam_get_property (GObject * object,
+ guint property_id,
+ GValue * value,
+ GParamSpec * pspec);
+static void _vala_manam_set_property (GObject * object,
+ guint property_id,
+ const GValue * value,
+ GParamSpec * pspec);
static void _vala_main (void);
static inline gpointer
self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_BAR, Bar);
switch (property_id) {
case BAR_FOO_PROPERTY:
- g_value_set_string (value, foo_get_foo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_FOO, Foo)));
+ g_value_set_string (value, (gchar*) foo_get_foo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_FOO, Foo)));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
}
+static inline gpointer
+manam_get_instance_private (Manam* self)
+{
+ return G_STRUCT_MEMBER_P (self, Manam_private_offset);
+}
+
+Manam*
+manam_construct (GType object_type)
+{
+ Manam * self = NULL;
+ self = (Manam*) foo_construct (object_type, G_TYPE_INT, NULL, NULL);
+ return self;
+}
+
+Manam*
+manam_new (void)
+{
+ return manam_construct (TYPE_MANAM);
+}
+
+static gint
+manam_real_get_foo (Foo* base)
+{
+ gint result;
+ Manam* self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MANAM, Manam);
+ result = self->priv->_foo;
+ return result;
+}
+
+static void
+manam_real_set_foo (Foo* base,
+ gint value)
+{
+ Manam* self;
+ gint old_value;
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MANAM, Manam);
+ old_value = manam_real_get_foo (base);
+ if (old_value != value) {
+ self->priv->_foo = value;
+ g_object_notify_by_pspec ((GObject *) self, manam_properties[MANAM_FOO_PROPERTY]);
+ }
+}
+
+static void
+manam_class_init (ManamClass * klass,
+ gpointer klass_data)
+{
+ manam_parent_class = g_type_class_peek_parent (klass);
+ g_type_class_adjust_private_offset (klass, &Manam_private_offset);
+ FOO_CLASS (klass)->get_foo = (gconstpointer (*) (Foo*)) manam_real_get_foo;
+ FOO_CLASS (klass)->set_foo = (void (*) (Foo*, gconstpointer)) manam_real_set_foo;
+ G_OBJECT_CLASS (klass)->get_property = _vala_manam_get_property;
+ G_OBJECT_CLASS (klass)->set_property = _vala_manam_set_property;
+ G_OBJECT_CLASS (klass)->finalize = manam_finalize;
+ g_object_class_install_property (G_OBJECT_CLASS (klass), MANAM_FOO_PROPERTY, manam_properties[MANAM_FOO_PROPERTY] = g_param_spec_int ("foo", "foo", "foo", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
+}
+
+static void
+manam_instance_init (Manam * self,
+ gpointer klass)
+{
+ self->priv = manam_get_instance_private (self);
+}
+
+static void
+manam_finalize (GObject * obj)
+{
+ Manam * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MANAM, Manam);
+ G_OBJECT_CLASS (manam_parent_class)->finalize (obj);
+}
+
+static GType
+manam_get_type_once (void)
+{
+ static const GTypeInfo g_define_type_info = { sizeof (ManamClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) manam_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Manam), 0, (GInstanceInitFunc) manam_instance_init, NULL };
+ GType manam_type_id;
+ manam_type_id = g_type_register_static (TYPE_FOO, "Manam", &g_define_type_info, 0);
+ Manam_private_offset = g_type_add_instance_private (manam_type_id, sizeof (ManamPrivate));
+ return manam_type_id;
+}
+
+GType
+manam_get_type (void)
+{
+ static volatile gsize manam_type_id__once = 0;
+ if (g_once_init_enter (&manam_type_id__once)) {
+ GType manam_type_id;
+ manam_type_id = manam_get_type_once ();
+ g_once_init_leave (&manam_type_id__once, manam_type_id);
+ }
+ return manam_type_id__once;
+}
+
+static void
+_vala_manam_get_property (GObject * object,
+ guint property_id,
+ GValue * value,
+ GParamSpec * pspec)
+{
+ Manam * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_MANAM, Manam);
+ switch (property_id) {
+ case MANAM_FOO_PROPERTY:
+ g_value_set_int (value, (gint) ((gintptr) foo_get_foo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_FOO, Foo))));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+_vala_manam_set_property (GObject * object,
+ guint property_id,
+ const GValue * value,
+ GParamSpec * pspec)
+{
+ Manam * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_MANAM, Manam);
+ switch (property_id) {
+ case MANAM_FOO_PROPERTY:
+ foo_set_foo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_FOO, Foo), (gpointer) ((gintptr) g_value_get_int (value)));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
static void
_vala_main (void)
{
Bar* _tmp0_;
gconstpointer _tmp1_;
gconstpointer _tmp2_;
+ Manam* manam = NULL;
+ Manam* _tmp3_;
+ gconstpointer _tmp4_;
+ gconstpointer _tmp5_;
_tmp0_ = bar_new ();
bar = _tmp0_;
foo_set_foo (G_TYPE_CHECK_INSTANCE_CAST (bar, TYPE_FOO, Foo), "foo");
_tmp1_ = foo_get_foo (G_TYPE_CHECK_INSTANCE_CAST (bar, TYPE_FOO, Foo));
_tmp2_ = _tmp1_;
_vala_assert (g_strcmp0 ((const gchar*) _tmp2_, "foo") == 0, "bar.foo == \"foo\"");
+ _tmp3_ = manam_new ();
+ manam = _tmp3_;
+ foo_set_foo (G_TYPE_CHECK_INSTANCE_CAST (manam, TYPE_FOO, Foo), (gpointer) ((gintptr) 42));
+ _tmp4_ = foo_get_foo (G_TYPE_CHECK_INSTANCE_CAST (manam, TYPE_FOO, Foo));
+ _tmp5_ = _tmp4_;
+ _vala_assert (((gint) ((gintptr) _tmp5_)) == 42, "manam.foo == 42");
+ _g_object_unref0 (manam);
_g_object_unref0 (bar);
}