From: Pawel Wasowski Date: Fri, 21 Dec 2018 13:16:04 +0000 (+0100) Subject: Fix ApplicationControlData creation X-Git-Tag: submit/tizen/20190109.233706^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ed40b3693b3104e6ab85346667de537b8ca31aa6;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git Fix ApplicationControlData creation Verification: 100% TCT pass rate Signed-off-by: Pawel Wasowski Change-Id: I3dc0a7eba685a0ec7e1e111350f9a68ae3f3296d --- diff --git a/src/application/application_utils.cc b/src/application/application_utils.cc index 5b46388b..3fbeeba5 100644 --- a/src/application/application_utils.cc +++ b/src/application/application_utils.cc @@ -389,8 +389,17 @@ PlatformResult ApplicationUtils::ApplicationControlDataToServiceExtraData( value_data.push_back(v.get().c_str()); } - auto result = app_control_add_extra_data_array(app_control, key.c_str(), value_data.data(), - value_data.size()); + int result = APP_CONTROL_ERROR_NONE; + /* + * Native applications handle single extra data objects and arrays in a different ways, + * hence they have to be packed with different native API functions. + */ + if (1 == value_data.size()) { + result = app_control_add_extra_data(app_control, key.c_str(), value_data[0]); + } else { + result = app_control_add_extra_data_array(app_control, key.c_str(), value_data.data(), value_data.size()); + } + if (APP_CONTROL_ERROR_INVALID_PARAMETER == result) { if (0 == key.length()) { LoggerD("app_control_add_extra_data_array failed: zero-length key");