svace : single_request
[platform/core/api/location-manager.git] / src / locations.c
index ee7c7fc..a5437ab 100755 (executable)
@@ -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);
        }
 }