summaryrefslogtreecommitdiffstats
path: root/mojo/common/common_type_converters.cc
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/common/common_type_converters.cc')
-rw-r--r--mojo/common/common_type_converters.cc23
1 files changed, 20 insertions, 3 deletions
diff --git a/mojo/common/common_type_converters.cc b/mojo/common/common_type_converters.cc
index 2740853..78418f8 100644
--- a/mojo/common/common_type_converters.cc
+++ b/mojo/common/common_type_converters.cc
@@ -39,9 +39,9 @@ base::string16 TypeConverter<base::string16, String>::Convert(
return base::UTF8ToUTF16(input.To<base::StringPiece>());
}
-std::string TypeConverter<std::string, Array<uint8_t> >::Convert(
+std::string TypeConverter<std::string, Array<uint8_t>>::Convert(
const Array<uint8_t>& input) {
- if (input.is_null() || input.size() == 0u)
+ if (input.is_null() || input.empty())
return std::string();
return std::string(reinterpret_cast<const char*>(&input.front()),
@@ -51,9 +51,26 @@ std::string TypeConverter<std::string, Array<uint8_t> >::Convert(
Array<uint8_t> TypeConverter<Array<uint8_t>, std::string>::Convert(
const std::string& input) {
Array<uint8_t> result(input.size());
- if (input.size() > 0)
+ if (!input.empty())
memcpy(&result.front(), input.c_str(), input.size());
return result;
}
+base::string16 TypeConverter<base::string16, Array<uint8_t>>::Convert(
+ const Array<uint8_t>& input) {
+ if (input.is_null() || input.empty())
+ return base::string16();
+
+ return base::string16(reinterpret_cast<const base::char16*>(&input.front()),
+ input.size() / sizeof(base::char16));
+}
+
+Array<uint8_t> TypeConverter<Array<uint8_t>, base::string16>::Convert(
+ const base::string16& input) {
+ Array<uint8_t> result(input.size() * sizeof(base::char16));
+ if (!input.empty())
+ memcpy(&result.front(), input.c_str(), input.size() * sizeof(base::char16));
+ return result;
+}
+
} // namespace mojo