summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-16 20:11:06 +0000
committertc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-16 20:11:06 +0000
commit49ca701d8284678304f3b7b10c877f66a5494b35 (patch)
tree307fecb4278aba70c7e9f43632bd54ac13afec3f
parentdde6e35f3f0ecda0f8c7c5873ef04eb4877ee9f2 (diff)
downloadchromium_src-49ca701d8284678304f3b7b10c877f66a5494b35.zip
chromium_src-49ca701d8284678304f3b7b10c877f66a5494b35.tar.gz
chromium_src-49ca701d8284678304f3b7b10c877f66a5494b35.tar.bz2
Take 2 at fixing image corruption on drag and drop.
Fix a unittest that needs to specify the size when reading char* data. Review URL: http://codereview.chromium.org/7441 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3478 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--base/clipboard_util.cc3
-rw-r--r--chrome/common/os_exchange_data.cc2
-rw-r--r--chrome/common/os_exchange_data_unittest.cc4
3 files changed, 4 insertions, 5 deletions
diff --git a/base/clipboard_util.cc b/base/clipboard_util.cc
index 5902b43..9d35db4 100644
--- a/base/clipboard_util.cc
+++ b/base/clipboard_util.cc
@@ -356,8 +356,7 @@ bool ClipboardUtil::GetFileContents(IDataObject* data_object,
if (SUCCEEDED(data_object->GetData(GetFileContentFormatZero(), &content))) {
if (TYMED_HGLOBAL == content.tymed) {
ScopedHGlobal<char> data(content.hGlobal);
- // The size includes the trailing NULL byte. We don't want it.
- file_contents->assign(data.get(), data.Size() - 1);
+ file_contents->assign(data.get(), data.Size());
}
ReleaseStgMedium(&content);
}
diff --git a/chrome/common/os_exchange_data.cc b/chrome/common/os_exchange_data.cc
index ea050de..36553c1 100644
--- a/chrome/common/os_exchange_data.cc
+++ b/chrome/common/os_exchange_data.cc
@@ -330,7 +330,7 @@ void OSExchangeData::SetFileContents(const std::wstring& filename,
ClipboardUtil::GetFileDescriptorFormat()->cfFormat, storage));
// Add CFSTR_FILECONTENTS
- storage = GetStorageForString(file_contents);
+ storage = GetStorageForBytes(file_contents.data(), file_contents.length());
contents_.push_back(new StoredDataInfo(
ClipboardUtil::GetFileContentFormatZero()->cfFormat, storage));
}
diff --git a/chrome/common/os_exchange_data_unittest.cc b/chrome/common/os_exchange_data_unittest.cc
index 594a91a..f54cb72 100644
--- a/chrome/common/os_exchange_data_unittest.cc
+++ b/chrome/common/os_exchange_data_unittest.cc
@@ -265,8 +265,8 @@ TEST(OSExchangeDataTest, TestURLExchangeFormats) {
STGMEDIUM medium;
EXPECT_EQ(S_OK, com_data->GetData(&format_etc, &medium));
- std::string output =
- ScopedHGlobal<char>(medium.hGlobal).get();
+ ScopedHGlobal<char> glob(medium.hGlobal);
+ std::string output(glob.get(), glob.Size());
std::string file_contents = "[InternetShortcut]\r\nURL=" + url_spec + "\r\n";
EXPECT_EQ(file_contents, output);
ReleaseStgMedium(&medium);