diff options
-rwxr-xr-x | src/locations.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/locations.c b/src/locations.c index ee7c7fc..a5437ab 100755 --- a/src/locations.c +++ b/src/locations.c @@ -112,16 +112,20 @@ static void __cb_service_updated(GObject *self, guint type, gpointer data, gpoin static void __cb_location_updated(GObject *self, int error, gpointer position, gpointer velocity, gpointer accuracy, gpointer userdata) { - LOCATIONS_LOGD("Callback function has been invoked. "); int converted_err = __convert_error_code(error); location_manager_s *handle = (location_manager_s *) userdata; LocationPosition *pos = (LocationPosition *) position; LocationVelocity *vel = (LocationVelocity *) velocity; - LOCATIONS_LOGD("Current position: timestamp : %d", pos->timestamp); + LOCATIONS_LOGD("Callback function[TYPE_LOCATION: single] timestamp : %d, error : %d", pos->timestamp, error); if (handle->user_cb[_LOCATIONS_EVENT_TYPE_LOCATION]) { ((location_updated_cb) handle->user_cb[_LOCATIONS_EVENT_TYPE_LOCATION])(converted_err, pos->latitude, pos->longitude, pos->altitude, - pos->timestamp, vel->speed, vel->climb, vel->direction, handle->user_data[_LOCATIONS_EVENT_TYPE_LOCATION]); + pos->timestamp, vel->speed, vel->direction, vel->climb, handle->user_data[_LOCATIONS_EVENT_TYPE_LOCATION]); + } + + if (error != LOCATION_ERROR_NONE) { + location_position_free(pos); + location_velocity_free(vel); } } |