aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-03-28 14:00:21 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-03-29 09:18:04 +0200
commit19d53751a2cca0ecd2d6b60813076db08fb4bd52 (patch)
treed1bb5503c57e9288f9c5221863d1c15f9c50734a
parent9116a58eb6bcfa81a10a53f8863ef240e74c7e97 (diff)
libmm-common,location-gps-raw: don't build dictionary if mandatory parameters missing
-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));
}