| Index: mojo/public/bindings/lib/bindings.cc
|
| diff --git a/mojo/public/bindings/lib/bindings.cc b/mojo/public/bindings/lib/bindings.cc
|
| index 9f4d6fddc5f8921092cd78363de48c68eb08621a..a9d748f41c4b853507074e84bb1f9109016bd644 100644
|
| --- a/mojo/public/bindings/lib/bindings.cc
|
| +++ b/mojo/public/bindings/lib/bindings.cc
|
| @@ -10,21 +10,28 @@ namespace mojo {
|
| String SimilarityTraits<String, std::string>::CopyFrom(const std::string& input,
|
| Buffer* buf) {
|
| String::Builder result(input.size(), buf);
|
| - memcpy(&result[0], input.data(), input.size());
|
| + if (!input.empty())
|
| + memcpy(&result[0], input.data(), input.size());
|
| return result.Finish();
|
| }
|
| // static
|
| std::string SimilarityTraits<String, std::string>::CopyTo(const String& input) {
|
| - return input.is_null() ? std::string() :
|
| - std::string(&input[0], &input[0] + input.size());
|
| + if (input.is_null() || input.size() == 0)
|
| + return std::string();
|
| +
|
| + return std::string(&input[0], &input[0] + input.size());
|
| }
|
|
|
| // static
|
| String SimilarityTraits<String, const char*>::CopyFrom(const char* input,
|
| Buffer* buf) {
|
| + if (!input)
|
| + return String();
|
| +
|
| size_t size = strlen(input);
|
| String::Builder result(size, buf);
|
| - memcpy(&result[0], input, size);
|
| + if (size != 0)
|
| + memcpy(&result[0], input, size);
|
| return result.Finish();
|
| }
|
|
|
|
|