Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "platform/mojo/CommonCustomTypesStructTraits.h" | |
| 6 | |
| 7 #include "mojo/public/cpp/bindings/array_traits_wtf_vector.h" | |
| 8 #include <cstring> | |
| 9 | |
| 10 namespace mojo { | |
| 11 | |
| 12 // static | |
| 13 mojo::ConstCArray<uint16_t> | |
| 14 StructTraits<mojo::common::mojom::String16DataView, ::WTF::String>::data( | |
| 15 const ::WTF::String& str) { | |
| 16 DCHECK(!str.isNull()) | |
| 17 << "mojo::common::mojom::String16 only accepts non-null blink::WebString"; | |
| 18 DCHECK(!str.is8Bit()); | |
| 19 | |
| 20 return mojo::ConstCArray<uint16_t>(str.length(), str.characters16()); | |
| 21 } | |
| 22 | |
| 23 // static | |
| 24 bool StructTraits<mojo::common::mojom::String16DataView, ::WTF::String>::Read( | |
| 25 mojo::common::mojom::String16DataView data, | |
| 26 ::WTF::String* out) { | |
| 27 mojo::ArrayDataView<uint16_t> view; | |
| 28 data.GetDataDataView(&view); | |
| 29 if (view.is_null()) | |
| 30 return false; | |
| 31 *out = | |
| 32 ::WTF::String(reinterpret_cast<const UChar*>(view.data()), view.size()); | |
| 33 // WTF::String is constructed as 8-bit if the string is empty. | |
| 34 out->ensure16Bit(); | |
|
Zhiqiang Zhang (Slow)
2016/10/04 20:06:22
esprehn@, should this be fixed in WTF::String?
I
| |
| 35 return true; | |
| 36 } | |
| 37 | |
| 38 } // namespace mojo | |
| OLD | NEW |