aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib/mm-modem-3gpp.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2019-12-13 18:04:02 +0100
committerAleksander Morgado <aleksander@aleksander.es>2019-12-13 18:04:02 +0100
commitfcbffbd1231052fb3ea543382b59ad195cc45211 (patch)
treeaa2396533deb1279f6711bf8cd25acf8c769e1cc /libmm-glib/mm-modem-3gpp.c
parent248cd55f0e5d2a125569f9e7974a43d6b895d6de (diff)
libmm-glib,3gpp: make MMModem3gppNetwork a boxed type
So that bindings know how to free the list of structs. This commit ends up triggering an API break in the bindings generated via GObject introspection, because the methods to access the items of a MMModem3gppNetwork are no longer treated as Modem3gpp class methods. E.g. instead of: ModemManager.Modem3gpp.network_get_operator_code(network) We should now do: network.get_operator_code() There is no API break in libmm-glib.
Diffstat (limited to 'libmm-glib/mm-modem-3gpp.c')
-rw-r--r--libmm-glib/mm-modem-3gpp.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/libmm-glib/mm-modem-3gpp.c b/libmm-glib/mm-modem-3gpp.c
index 03600c22..7170acdb 100644
--- a/libmm-glib/mm-modem-3gpp.c
+++ b/libmm-glib/mm-modem-3gpp.c
@@ -549,6 +549,23 @@ mm_modem_3gpp_network_free (MMModem3gppNetwork *network)
g_slice_free (MMModem3gppNetwork, network);
}
+static MMModem3gppNetwork *
+modem_3gpp_network_copy (MMModem3gppNetwork *network)
+{
+ MMModem3gppNetwork *network_copy;
+
+ network_copy = g_slice_new0 (MMModem3gppNetwork);
+ network_copy->availability = network->availability;
+ network_copy->operator_long = g_strdup (network->operator_long);
+ network_copy->operator_short = g_strdup (network->operator_short);
+ network_copy->operator_code = g_strdup (network->operator_code);
+ network_copy->access_technology = network->access_technology;
+
+ return network_copy;
+}
+
+G_DEFINE_BOXED_TYPE (MMModem3gppNetwork, mm_modem_3gpp_network, (GBoxedCopyFunc)modem_3gpp_network_copy, (GBoxedFreeFunc)mm_modem_3gpp_network_free)
+
/**
* mm_modem_3gpp_network_get_availability:
* @network: A #MMModem3gppNetwork.