aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libmm-common/mm-location-gps-raw.c45
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));
}