user_data = request_context->user_data;
reply_cb = request_context->reply_cb;
- if (reply_cb != NULL)
+ if (reply_cb != NULL) {
reply_cb(request, reply, result, user_data);
- else
+ request_context->reply_cb = NULL;
+ } else {
app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, __FUNCTION__, "invalid callback ");
+ }
app_control_destroy(reply);
+ if (request_context->result_cb)
+ return;
+
if (request_context->app_control != NULL)
app_control_destroy(request_context->app_control);
request_context->result_cb = NULL;
}
- if (result > 0) {
- __handle_app_started_result(app_control,
- request_context->reply_cb ? request_context : NULL);
- }
-
if (result < 0 || !request_context->reply_cb) {
app_control_destroy(request_context->app_control);
free(request_context);
+ return;
}
+
+ __handle_app_started_result(app_control,
+ request_context->reply_cb ? request_context : NULL);
}
static int __launch_request_verify_operation(struct launch_request_s *req)