diff options
Diffstat (limited to 'libmm-glib/mm-common-helpers.c')
-rw-r--r-- | libmm-glib/mm-common-helpers.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c index 11d0640c..8c3415ff 100644 --- a/libmm-glib/mm-common-helpers.c +++ b/libmm-glib/mm-common-helpers.c @@ -728,6 +728,33 @@ mm_common_ports_garray_to_variant (GArray *array) return mm_common_ports_array_to_variant (NULL, 0); } +gboolean +mm_common_ports_garray_to_array (GArray *array, + MMModemPortInfo **ports, + guint *n_ports) +{ + if (!array) + return FALSE; + + *ports = NULL; + *n_ports = array->len; + if (array->len > 0) { + guint i; + + *ports = g_malloc (sizeof (MMModemPortInfo) * array->len); + + /* Deep-copy the array */ + for (i = 0; i < array->len; i++) { + MMModemPortInfo *src; + + src = &g_array_index (array, MMModemPortInfo, i); + (*ports)[i].name = g_strdup (src->name); + (*ports)[i].type = src->type; + } + } + return TRUE; +} + /******************************************************************************/ /* MMSmsStorage array management */ |