diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2022-08-18 12:14:18 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-08-19 15:53:43 +0000 |
commit | 451eb040cda0cb594973cf64f5d00069f562f219 (patch) | |
tree | 043b2c0af1a9a75190487a5be111c71c2e767d8b /libmm-glib | |
parent | 3238ccdbb29e86acd2b3e5c0e45bee84f9da94b4 (diff) |
libmm-glib,sms: simplify 'data' property retrieval logic
Diffstat (limited to 'libmm-glib')
-rw-r--r-- | libmm-glib/mm-sms.c | 31 |
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); } /*****************************************************************************/ |