From 3a2a5d201631f31800a889164cb84b3c6784b8c2 Mon Sep 17 00:00:00 2001 From: "estade@chromium.org" Date: Wed, 4 Mar 2009 03:36:36 +0000 Subject: Update clipboard classes to use string16 and FilePath instead of wstring. Update callers as well. This patch builds on a patch by mark.a.lindner@gmail.com which can be found at http://codereview.chromium.org/28294 Review URL: http://codereview.chromium.org/27370 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10860 0039d316-1c4b-4281-b951-d872f2087c98 --- base/pickle.cc | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'base/pickle.cc') diff --git a/base/pickle.cc b/base/pickle.cc index aac59df..c2b3341 100644 --- a/base/pickle.cc +++ b/base/pickle.cc @@ -218,6 +218,22 @@ bool Pickle::ReadWString(void** iter, std::wstring* result) const { return true; } +bool Pickle::ReadString16(void** iter, string16* result) const { + DCHECK(iter); + + int len; + if (!ReadLength(iter, &len)) + return false; + if (!IteratorHasRoomFor(*iter, len)) + return false; + + char16* chars = reinterpret_cast(*iter); + result->assign(chars, len); + + UpdateIter(iter, len * sizeof(char16)); + return true; +} + bool Pickle::ReadBytes(void** iter, const char** data, int length) const { DCHECK(iter); DCHECK(data); @@ -290,7 +306,15 @@ bool Pickle::WriteWString(const std::wstring& value) { return false; return WriteBytes(value.data(), - static_cast(value.size() * sizeof(value.data()[0]))); + static_cast(value.size() * sizeof(wchar_t))); +} + +bool Pickle::WriteString16(const string16& value) { + if (!WriteInt(static_cast(value.size()))) + return false; + + return WriteBytes(value.data(), + static_cast(value.size()) * sizeof(char16)); } bool Pickle::WriteData(const char* data, int length) { -- cgit v1.1