Index: ui/base/dragdrop/os_exchange_data_provider_win.cc |
diff --git a/ui/base/dragdrop/os_exchange_data_provider_win.cc b/ui/base/dragdrop/os_exchange_data_provider_win.cc |
index 64330ee3bbaff34c75232702409d6289d50c04b2..ac57ffc1fc24e004ab57d44bd4f6d9b0a2cac616 100644 |
--- a/ui/base/dragdrop/os_exchange_data_provider_win.cc |
+++ b/ui/base/dragdrop/os_exchange_data_provider_win.cc |
@@ -626,6 +626,20 @@ static void DuplicateMedium(CLIPFORMAT source_clipformat, |
destination->pUnkForRelease->AddRef(); |
} |
+DataObjectImpl::StoredDataInfo::StoredDataInfo(const FORMATETC& format_etc, |
+ STGMEDIUM* medium) |
+ : format_etc(format_etc), medium(medium), owns_medium(true) { |
+} |
+ |
+DataObjectImpl::StoredDataInfo::~StoredDataInfo() { |
+ if (owns_medium) { |
+ ReleaseStgMedium(medium); |
+ delete medium; |
+ } |
+ if (downloader.get()) |
+ downloader->Stop(); |
+} |
+ |
DataObjectImpl::DataObjectImpl() |
: is_aborting_(false), |
in_drag_loop_(false), |