diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-28 14:00:21 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-29 09:18:04 +0200 |
commit | 19d53751a2cca0ecd2d6b60813076db08fb4bd52 (patch) | |
tree | d1bb5503c57e9288f9c5221863d1c15f9c50734a | |
parent | 9116a58eb6bcfa81a10a53f8863ef240e74c7e97 (diff) |
libmm-common,location-gps-raw: don't build dictionary if mandatory parameters missing
-rw-r--r-- | libmm-common/mm-location-gps-raw.c | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/libmm-common/mm-location-gps-raw.c b/libmm-common/mm-location-gps-raw.c index 7269ca44..0cae9261 100644 --- a/libmm-common/mm-location-gps-raw.c +++ b/libmm-common/mm-location-gps-raw.c @@ -203,31 +203,32 @@ mm_location_gps_raw_get_dictionary (MMLocationGpsRaw *self) g_return_val_if_fail (MM_IS_LOCATION_GPS_RAW (self), NULL); - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + /* If mandatory parameters are not found, return NULL */ + if (!self->priv->utc_time || + self->priv->longitude == MM_LOCATION_GPS_RAW_LONGITUDE_UNKNOWN || + self->priv->latitude == MM_LOCATION_GPS_RAW_LATITUDE_UNKNOWN) + return NULL; - if (self->priv->utc_time && - self->priv->longitude != MM_LOCATION_GPS_RAW_LONGITUDE_UNKNOWN && - self->priv->latitude != MM_LOCATION_GPS_RAW_LATITUDE_UNKNOWN) { - g_variant_builder_add (&builder, - "{sv}", - PROPERTY_UTC_TIME, - g_variant_new_string (self->priv->utc_time)); - g_variant_builder_add (&builder, - "{sv}", - PROPERTY_LONGITUDE, - g_variant_new_double (self->priv->longitude)); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_add (&builder, + "{sv}", + PROPERTY_UTC_TIME, + g_variant_new_string (self->priv->utc_time)); + g_variant_builder_add (&builder, + "{sv}", + PROPERTY_LONGITUDE, + g_variant_new_double (self->priv->longitude)); + g_variant_builder_add (&builder, + "{sv}", + PROPERTY_LATITUDE, + g_variant_new_double (self->priv->latitude)); + + /* Altitude is optional */ + if (self->priv->altitude != MM_LOCATION_GPS_RAW_ALTITUDE_UNKNOWN) g_variant_builder_add (&builder, "{sv}", - PROPERTY_LATITUDE, - g_variant_new_double (self->priv->latitude)); - - /* Altitude is optional */ - if (self->priv->altitude != MM_LOCATION_GPS_RAW_ALTITUDE_UNKNOWN) - g_variant_builder_add (&builder, - "{sv}", - PROPERTY_ALTITUDE, - g_variant_new_double (self->priv->altitude)); - } + PROPERTY_ALTITUDE, + g_variant_new_double (self->priv->altitude)); return g_variant_ref_sink (g_variant_builder_end (&builder)); } |