Index: third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h |
diff --git a/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h b/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h |
index 4360b18f5e918425f7d4851f752354ea54781781..153f543ee4b0cb25656f86c09b3a5bc4349aba9a 100644 |
--- a/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h |
+++ b/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h |
@@ -1,6 +1,6 @@ |
// Protocol Buffers - Google's data interchange format |
// Copyright 2008 Google Inc. All rights reserved. |
-// https://developers.google.com/protocol-buffers/ |
+// http://code.google.com/p/protobuf/ |
// |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
@@ -48,7 +48,6 @@ |
#include <iosfwd> |
#include <google/protobuf/io/zero_copy_stream.h> |
#include <google/protobuf/stubs/common.h> |
-#include <google/protobuf/stubs/stl_util.h> |
namespace google { |
@@ -127,10 +126,8 @@ class LIBPROTOBUF_EXPORT ArrayOutputStream : public ZeroCopyOutputStream { |
class LIBPROTOBUF_EXPORT StringOutputStream : public ZeroCopyOutputStream { |
public: |
// Create a StringOutputStream which appends bytes to the given string. |
- // The string remains property of the caller, but it is mutated in arbitrary |
- // ways and MUST NOT be accessed in any way until you're done with the |
- // stream. Either be sure there's no further usage, or (safest) destroy the |
- // stream before using the contents. |
+ // The string remains property of the caller, but it MUST NOT be accessed |
+ // in any way until the stream is destroyed. |
// |
// Hint: If you call target->reserve(n) before creating the stream, |
// the first call to Next() will return at least n bytes of buffer |
@@ -336,44 +333,6 @@ class LIBPROTOBUF_EXPORT CopyingOutputStreamAdaptor : public ZeroCopyOutputStrea |
// =================================================================== |
-// mutable_string_data() and as_string_data() are workarounds to improve |
-// the performance of writing new data to an existing string. Unfortunately |
-// the methods provided by the string class are suboptimal, and using memcpy() |
-// is mildly annoying because it requires its pointer args to be non-NULL even |
-// if we ask it to copy 0 bytes. Furthermore, string_as_array() has the |
-// property that it always returns NULL if its arg is the empty string, exactly |
-// what we want to avoid if we're using it in conjunction with memcpy()! |
-// With C++11, the desired memcpy() boils down to memcpy(..., &(*s)[0], size), |
-// where s is a string*. Without C++11, &(*s)[0] is not guaranteed to be safe, |
-// so we use string_as_array(), and live with the extra logic that tests whether |
-// *s is empty. |
- |
-// Return a pointer to mutable characters underlying the given string. The |
-// return value is valid until the next time the string is resized. We |
-// trust the caller to treat the return value as an array of length s->size(). |
-inline char* mutable_string_data(string* s) { |
-#ifdef LANG_CXX11 |
- // This should be simpler & faster than string_as_array() because the latter |
- // is guaranteed to return NULL when *s is empty, so it has to check for that. |
- return &(*s)[0]; |
-#else |
- return string_as_array(s); |
-#endif |
-} |
- |
-// as_string_data(s) is equivalent to |
-// ({ char* p = mutable_string_data(s); make_pair(p, p != NULL); }) |
-// Sometimes it's faster: in some scenarios p cannot be NULL, and then the |
-// code can avoid that check. |
-inline std::pair<char*, bool> as_string_data(string* s) { |
- char *p = mutable_string_data(s); |
-#ifdef LANG_CXX11 |
- return std::make_pair(p, true); |
-#else |
- return make_pair(p, p != NULL); |
-#endif |
-} |
- |
} // namespace io |
} // namespace protobuf |