[Download] Added destroy_download() in case of failure. 00/77900/1
authorTomasz Marciniak <t.marciniak@samsung.com>
Fri, 1 Jul 2016 05:05:59 +0000 (07:05 +0200)
committerTomasz Marciniak <t.marciniak@samsung.com>
Fri, 1 Jul 2016 11:18:23 +0000 (13:18 +0200)
[Verification] Code compiles. TCT pass rate 100%

Change-Id: Iae9d68114317c81766ab09bec2d567e49fe2495c
Signed-off-by: Tomasz Marciniak <t.marciniak@samsung.com>
src/download/download_instance.cc

index 97ff27c0275c5d239417cefe9c0f7490aa289d7a..ad114c01b0f4d8e78a43d198d0741e5febe6a922 100755 (executable)
@@ -407,7 +407,10 @@ gboolean DownloadInstance::OnFailed(void* user_data) {
     return FALSE;
   }
 
-  LoggerD("OnFailed for callbackID %d Called", downCbPtr->callbackId);
+  int callback_id = downCbPtr->callbackId;
+  DownloadInfoPtr diPtr = downCbPtr->instance->diMap[callback_id];
+
+  LoggerD("OnFailed for callbackID %d called", callback_id);
 
   download_get_error(downCbPtr->downloadId, &error);
 
@@ -416,10 +419,18 @@ gboolean DownloadInstance::OnFailed(void* user_data) {
                       ("download_get_error error: %d (%s)", error, get_error_message(error)));
   }
 
+  int ret = download_destroy(diPtr->download_id);
+  if (DOWNLOAD_ERROR_NONE != ret) {
+    LoggerE("%s", get_error_message(ret));
+  }
+
   out["callbackId"] =
     picojson::value(static_cast<double>(downCbPtr->callbackId));
 
   Instance::PostMessage(downCbPtr->instance, picojson::value(out).serialize().c_str());
+  downCbPtr->instance->download_callbacks.erase(callback_id);
+  delete (downCbPtr);
+
   return FALSE;
 }