aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-sim-mbim.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/mm-sim-mbim.c b/src/mm-sim-mbim.c
index 77e83ea0..c0839976 100644
--- a/src/mm-sim-mbim.c
+++ b/src/mm-sim-mbim.c
@@ -207,9 +207,13 @@ load_operator_identifier_finish (MMSim *self,
GAsyncResult *res,
GError **error)
{
+ MbimProvider *provider;
+
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
return NULL;
- return (gchar *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+
+ provider = (MbimProvider *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ return g_strdup (provider->provider_id);
}
static void
@@ -227,10 +231,9 @@ load_operator_identifier_ready (MbimDevice *device,
mbim_message_home_provider_response_parse (
response,
&provider,
- &error)) {
- g_simple_async_result_set_op_res_gpointer (simple, g_strdup (provider->provider_id), NULL);
- mbim_provider_free (provider);
- } else
+ &error))
+ g_simple_async_result_set_op_res_gpointer (simple, provider, (GDestroyNotify)mbim_provider_free);
+ else
g_simple_async_result_take_error (simple, error);
if (response)
@@ -271,9 +274,13 @@ load_operator_name_finish (MMSim *self,
GAsyncResult *res,
GError **error)
{
+ MbimProvider *provider;
+
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
return NULL;
- return (gchar *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+
+ provider = (MbimProvider *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ return g_strdup (provider->provider_name);
}
static void
@@ -291,10 +298,9 @@ load_operator_name_ready (MbimDevice *device,
mbim_message_home_provider_response_parse (
response,
&provider,
- &error)) {
- g_simple_async_result_set_op_res_gpointer (simple, g_strdup (provider->provider_name), NULL);
- mbim_provider_free (provider);
- } else
+ &error))
+ g_simple_async_result_set_op_res_gpointer (simple, provider, (GDestroyNotify)mbim_provider_free);
+ else
g_simple_async_result_take_error (simple, error);
if (response)