This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient.
commit 7ee08cf186d31789e6c496f199ee96d04c6847d5 Author: Mihai Moldovan <io...@ionic.de> Date: Wed Aug 5 14:55:33 2020 +0200 src/x2goclient-network.{c,h}: make parent_connection function pointer a read-only property called connect-function acting on an instance private called connect_function, add getter and setter. This makes it way safer to use, especially since it can now be truly immutable, only set once in this class's initialization. --- src/x2goclient-network.c | 18 ++++++++++++++++-- src/x2goclient-network.h | 1 - 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c index d076817..6ba5b24 100644 --- a/src/x2goclient-network.c +++ b/src/x2goclient-network.c @@ -55,6 +55,7 @@ typedef struct X2GoClientNetworkPrivate_ { X2GoClientNetworkOptions *options; gchar *session_path; /* Will eventually be replaced with a session object, probably. */ gboolean connected; + gboolean (*connect_func) (X2GoClientNetwork * const self, GError ** const gerr); } X2GoClientNetworkPrivate; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (X2GoClientNetwork, x2goclient_network, G_TYPE_OBJECT); @@ -73,6 +74,7 @@ enum { X2GO_NET_PROP_OPTIONS, X2GO_NET_PROP_SESSION_PATH, X2GO_NET_PROP_CONNECTED, + X2GO_NET_PROP_CONN_FUNC, X2GO_NET_N_PROPERTIES }; @@ -129,9 +131,12 @@ static void x2goclient_network_class_init (X2GoClientNetworkClass * const klass) FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE); - g_object_class_install_properties (object_class, X2GO_NET_N_PROPERTIES, net_obj_properties); + net_obj_properties[X2GO_NET_PROP_CONN_FUNC] = g_param_spec_pointer ("connect-function", _("Pointer to this instance's connect function"), + _("A pointer to the instance's connect function. " + "This is supposed to be immutable."), + G_PARAM_STATIC_STRINGS | G_PARAM_READABLE); - klass->parent_connect = &x2goclient_network_connect; + g_object_class_install_properties (object_class, X2GO_NET_N_PROPERTIES, net_obj_properties); } static void x2goclient_network_init (X2GoClientNetwork * const self) { @@ -141,6 +146,7 @@ static void x2goclient_network_init (X2GoClientNetwork * const self) { priv->options = NULL; priv->session_path = NULL; priv->connected = FALSE; + priv->connect_func = &x2goclient_network_connect; } static void x2goclient_network_dispose (GObject * const object) { @@ -162,6 +168,8 @@ static void x2goclient_network_finalize (GObject * const object) { g_free (priv->session_path); priv->session_path = NULL; + priv->connect_func = NULL; + (G_OBJECT_CLASS (x2goclient_network_parent_class))->finalize (object); } @@ -228,6 +236,9 @@ static void x2goclient_network_set_property (GObject * const object, guint prop_ case (X2GO_NET_PROP_CONNECTED): priv->connected = g_value_get_boolean (value); break; + case (X2GO_NET_PROP_CONN_FUNC): + priv->connect_func = g_value_get_pointer (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, param_spec); break; @@ -254,6 +265,9 @@ static void x2goclient_network_get_property (GObject * const object, const guint case (X2GO_NET_PROP_CONNECTED): g_value_set_boolean (value, priv->connected); break; + case (X2GO_NET_PROP_CONN_FUNC): + g_value_set_pointer (value, priv->connect_func); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, param_spec); break; diff --git a/src/x2goclient-network.h b/src/x2goclient-network.h index 5e0c15d..cf96c35 100644 --- a/src/x2goclient-network.h +++ b/src/x2goclient-network.h @@ -59,7 +59,6 @@ struct _X2GoClientNetworkClass { /*< private >*/ GSocketAddress* (*parse_sockspec) (X2GoClientNetwork * const self, const GString * const sockspec); - gboolean (*parent_connect) (X2GoClientNetwork * const self, GError ** const gerr); /* We might need a lot more functions... */ gpointer padding[50]; -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git _______________________________________________ x2go-commits mailing list x2go-commits@lists.x2go.org https://lists.x2go.org/listinfo/x2go-commits