Destroy the item once item is downloaded
authorCheng Zhao <zcbenz@gmail.com>
Tue, 2 Feb 2016 11:54:41 +0000 (19:54 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Tue, 2 Feb 2016 11:54:41 +0000 (19:54 +0800)
atom/browser/api/atom_api_download_item.cc

index d8e87f2..da95b67 100644 (file)
@@ -88,7 +88,14 @@ DownloadItem::~DownloadItem() {
 }
 
 void DownloadItem::OnDownloadUpdated(content::DownloadItem* item) {
-  download_item_->IsDone() ? Emit("done", item->GetState()) : Emit("updated");
+  if (download_item_->IsDone()) {
+    Emit("done", item->GetState());
+
+    // Destroy the item once item is downloaded.
+    base::MessageLoop::current()->PostTask(FROM_HERE, GetDestroyClosure());
+  } else {
+    Emit("updated");
+  }
 }
 
 void DownloadItem::OnDownloadDestroyed(content::DownloadItem* download_item) {