fix issue,not free string
[apps/agl-service-homescreen.git] / src / hs-client.cpp
index 536ff6e..e97f844 100644 (file)
@@ -216,9 +216,14 @@ int HS_Client::showWindow(afb_req_t request, const char* appid)
     hs_add_object_to_json_object_str( push_obj, 4, _application_id, appid, _type, __FUNCTION__);
     const char* param = afb_req_value(request, _parameter);
     if(param) {
-        const char* req_appid = afb_req_get_application_id(request);
+        std::string req_appid = std::move(get_application_id(request));
+        if(req_appid.empty()) {
+            HMI_NOTICE("homescreen-service","can't get application identifier");
+            return AFB_REQ_GETAPPLICATIONID_ERROR;
+        }
+
         struct json_object* param_obj = json_tokener_parse(param);
-        json_object_object_add(param_obj, _replyto, json_object_new_string(req_appid));
+        json_object_object_add(param_obj, _replyto, json_object_new_string(req_appid.c_str()));
         json_object_object_add(push_obj, _parameter, param_obj);
     }
     else {
@@ -247,10 +252,15 @@ int HS_Client::hideWindow(afb_req_t request)
     if(!checkEvent(__FUNCTION__))
         return 0;
 
-    HMI_NOTICE("homescreen-service","%s application_id = %s.", __FUNCTION__);
-    const char* req_appid = afb_req_get_application_id(request);
+    HMI_NOTICE("homescreen-service","%s called.", __FUNCTION__);
+    std::string req_appid = std::move(get_application_id(request));
+    if(req_appid.empty()) {
+        HMI_NOTICE("homescreen-service","can't get application identifier");
+        return AFB_REQ_GETAPPLICATIONID_ERROR;
+    }
+
     struct json_object* push_obj = json_object_new_object();
-    hs_add_object_to_json_object_str( push_obj, 4, _application_id, req_appid,
+    hs_add_object_to_json_object_str( push_obj, 4, _application_id, req_appid.c_str(),
     _type, __FUNCTION__);
     afb_event_push(my_event, push_obj);
     return 0;
@@ -310,14 +320,19 @@ int HS_Client::showNotification(afb_req_t request)
     const char *value = afb_req_value(request, _text);
     if(value) {
         HMI_NOTICE("homescreen-service","text is %s", value);
-        const char* appid = afb_req_get_application_id(request);
+        std::string appid =std::move(get_application_id(request));
+        if(appid.empty()) {
+            HMI_NOTICE("homescreen-service","can't get application identifier");
+            return AFB_REQ_GETAPPLICATIONID_ERROR;
+        }
+
         struct json_object* param_obj = json_object_new_object();
         const char *icon = afb_req_value(request, _icon);
         if(icon) {
             json_object_object_add(param_obj, _icon, json_object_new_string(icon));
             json_object_object_add(param_obj, _text, json_object_new_string(value));
             struct json_object* push_obj = json_object_new_object();
-            hs_add_object_to_json_object_str( push_obj, 4, _application_id, appid, _type, __FUNCTION__);
+            hs_add_object_to_json_object_str( push_obj, 4, _application_id, appid.c_str(), _type, __FUNCTION__);
             json_object_object_add(push_obj, _parameter, param_obj);
             afb_event_push(my_event, push_obj);
         }
@@ -353,11 +368,16 @@ int HS_Client::showInformation(afb_req_t request)
     const char *value = afb_req_value(request, _info);
     if(value) {
         HMI_NOTICE("homescreen-service","info is %s", value);
-        const char* appid = afb_req_get_application_id(request);
+        std::string appid = std::move(get_application_id(request));
+        if(appid.empty()) {
+            HMI_NOTICE("homescreen-service","can't get application identifier");
+            return AFB_REQ_GETAPPLICATIONID_ERROR;
+        }
+
         struct json_object* param_obj = json_object_new_object();
         json_object_object_add(param_obj, _info, json_object_new_string(value));
         struct json_object* push_obj = json_object_new_object();
-        hs_add_object_to_json_object_str( push_obj, 4, _application_id, appid, _type, __FUNCTION__);
+        hs_add_object_to_json_object_str( push_obj, 4, _application_id, appid.c_str(), _type, __FUNCTION__);
         json_object_object_add(push_obj, _parameter, param_obj);
         afb_event_push(my_event, push_obj);
     }