aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2022-08-18 12:14:18 +0000
committerAleksander Morgado <aleksander@aleksander.es>2022-08-19 15:53:43 +0000
commit451eb040cda0cb594973cf64f5d00069f562f219 (patch)
tree043b2c0af1a9a75190487a5be111c71c2e767d8b /libmm-glib
parent3238ccdbb29e86acd2b3e5c0e45bee84f9da94b4 (diff)
libmm-glib,sms: simplify 'data' property retrieval logic
Diffstat (limited to 'libmm-glib')
-rw-r--r--libmm-glib/mm-sms.c31
1 files changed, 7 insertions, 24 deletions
diff --git a/libmm-glib/mm-sms.c b/libmm-glib/mm-sms.c
index 9c1ec3d2..f9f5759a 100644
--- a/libmm-glib/mm-sms.c
+++ b/libmm-glib/mm-sms.c
@@ -159,10 +159,7 @@ mm_sms_get_data (MMSms *self,
data = mm_gdbus_sms_get_data (MM_GDBUS_SMS (self));
return (data ?
- g_variant_get_fixed_array (
- mm_gdbus_sms_get_data (MM_GDBUS_SMS (self)),
- data_len,
- sizeof (guchar)):
+ g_variant_get_fixed_array (data, data_len, sizeof (guint8)) :
NULL);
}
@@ -183,30 +180,16 @@ guint8 *
mm_sms_dup_data (MMSms *self,
gsize *data_len)
{
- guint8 *out;
- GVariant *data_variant;
- const guint8 *orig_data;
- gsize orig_data_len = 0;
+ g_autoptr(GVariant) data = NULL;
g_return_val_if_fail (MM_IS_SMS (self), NULL);
+ g_return_val_if_fail (data_len != NULL, NULL);
/* Get a ref to ensure the variant is valid as long as we use it */
- data_variant = mm_gdbus_sms_dup_data (MM_GDBUS_SMS (self));
- if (!data_variant)
- return NULL;
-
- orig_data = (g_variant_get_fixed_array (
- mm_gdbus_sms_get_data (MM_GDBUS_SMS (self)),
- &orig_data_len,
- sizeof (guchar)));
-
- out = g_new (guint8, orig_data_len);
- memcpy (out, orig_data, orig_data_len);
- g_variant_unref (data_variant);
-
- if (data_len)
- *data_len = orig_data_len;
- return out;
+ data = mm_gdbus_sms_dup_data (MM_GDBUS_SMS (self));
+ return (data ?
+ g_memdup (g_variant_get_fixed_array (data, data_len, sizeof (guint8)), *data_len) :
+ NULL);
}
/*****************************************************************************/