[gobject-introspection] tests: Add marshalling tests for GValue-valued properties
- From: Philip Chimento <pchimento src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] tests: Add marshalling tests for GValue-valued properties
- Date: Wed, 5 Apr 2017 01:43:58 +0000 (UTC)
commit 32d130f1a5829acc5827d43735e15e9198c2971d
Author: Philip Chimento <philip chimento gmail com>
Date: Mon Apr 3 22:09:04 2017 -0700
tests: Add marshalling tests for GValue-valued properties
This is to test GJS's support of GValues boxed inside GValues.
https://bugzilla.gnome.org/show_bug.cgi?id=688128
tests/gimarshallingtests.c | 21 +++++++++++++++++++++
tests/gimarshallingtests.h | 1 +
2 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/tests/gimarshallingtests.c b/tests/gimarshallingtests.c
index 54702a3..40ba573 100644
--- a/tests/gimarshallingtests.c
+++ b/tests/gimarshallingtests.c
@@ -5351,6 +5351,7 @@ enum
SOME_BOXED_STRUCT_PROPERTY,
SOME_VARIANT_PROPERTY,
SOME_BOXED_GLIST_PROPERTY,
+ SOME_GVALUE_PROPERTY,
SOME_OBJECT_PROPERTY,
SOME_FLAGS_PROPERTY,
SOME_ENUM_PROPERTY,
@@ -5373,6 +5374,11 @@ gi_marshalling_tests_properties_object_finalize (GObject *obj)
self->some_strv = NULL;
}
+ if (self->some_gvalue) {
+ g_boxed_free (G_TYPE_VALUE, self->some_gvalue);
+ self->some_gvalue = NULL;
+ }
+
G_OBJECT_CLASS (gi_marshalling_tests_properties_object_parent_class)->finalize (obj);
}
@@ -5426,6 +5432,9 @@ gi_marshalling_tests_properties_object_get_property (GObject *object,
case SOME_BOXED_GLIST_PROPERTY:
g_value_set_boxed (value, self->some_boxed_glist);
break;
+ case SOME_GVALUE_PROPERTY:
+ g_value_set_boxed (value, self->some_gvalue);
+ break;
case SOME_VARIANT_PROPERTY:
g_value_set_variant (value, self->some_variant);
break;
@@ -5497,6 +5506,11 @@ gi_marshalling_tests_properties_object_set_property (GObject *object,
g_list_free (self->some_boxed_glist);
self->some_boxed_glist = g_list_copy (g_value_get_boxed (value));
break;
+ case SOME_GVALUE_PROPERTY:
+ if (self->some_gvalue)
+ g_boxed_free (G_TYPE_VALUE, self->some_gvalue);
+ self->some_gvalue = g_value_dup_boxed (value);
+ break;
case SOME_VARIANT_PROPERTY:
if (self->some_variant != NULL)
g_variant_unref (self->some_variant);
@@ -5631,6 +5645,13 @@ static void gi_marshalling_tests_properties_object_class_init (GIMarshallingTest
gi_marshalling_tests_boxed_glist_get_type
(), G_PARAM_READABLE | G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class, SOME_GVALUE_PROPERTY,
+ g_param_spec_boxed ("some-gvalue",
+ "some-gvalue",
+ "some-gvalue",
+ G_TYPE_VALUE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
g_object_class_install_property (object_class, SOME_VARIANT_PROPERTY,
g_param_spec_variant ("some-variant",
"some-variant",
diff --git a/tests/gimarshallingtests.h b/tests/gimarshallingtests.h
index 25af019..0c59952 100644
--- a/tests/gimarshallingtests.h
+++ b/tests/gimarshallingtests.h
@@ -1970,6 +1970,7 @@ struct _GIMarshallingTestsPropertiesObject {
gchar **some_strv;
GIMarshallingTestsBoxedStruct* some_boxed_struct;
GList* some_boxed_glist;
+ GValue *some_gvalue;
GVariant *some_variant;
GObject *some_object;
GIMarshallingTestsFlags some_flags;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]