| Index: third_party/protobuf/src/google/protobuf/arenastring.h
|
| diff --git a/third_party/protobuf/src/google/protobuf/arenastring.h b/third_party/protobuf/src/google/protobuf/arenastring.h
|
| deleted file mode 100644
|
| index d829ed9191dcb18c74b400d346dcd366769d1bcf..0000000000000000000000000000000000000000
|
| --- a/third_party/protobuf/src/google/protobuf/arenastring.h
|
| +++ /dev/null
|
| @@ -1,315 +0,0 @@
|
| -// Protocol Buffers - Google's data interchange format
|
| -// Copyright 2008 Google Inc. All rights reserved.
|
| -// https://developers.google.com/protocol-buffers/
|
| -//
|
| -// Redistribution and use in source and binary forms, with or without
|
| -// modification, are permitted provided that the following conditions are
|
| -// met:
|
| -//
|
| -// * Redistributions of source code must retain the above copyright
|
| -// notice, this list of conditions and the following disclaimer.
|
| -// * Redistributions in binary form must reproduce the above
|
| -// copyright notice, this list of conditions and the following disclaimer
|
| -// in the documentation and/or other materials provided with the
|
| -// distribution.
|
| -// * Neither the name of Google Inc. nor the names of its
|
| -// contributors may be used to endorse or promote products derived from
|
| -// this software without specific prior written permission.
|
| -//
|
| -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| -
|
| -#ifndef GOOGLE_PROTOBUF_ARENASTRING_H__
|
| -#define GOOGLE_PROTOBUF_ARENASTRING_H__
|
| -
|
| -#include <string>
|
| -
|
| -#include <google/protobuf/stubs/common.h>
|
| -#include <google/protobuf/stubs/fastmem.h>
|
| -
|
| -#include <google/protobuf/arena.h>
|
| -#include <google/protobuf/generated_message_util.h>
|
| -
|
| -
|
| -
|
| -// This is the implementation of arena string fields written for the open-source
|
| -// release. The ArenaStringPtr struct below is an internal implementation class
|
| -// and *should not be used* by user code. It is used to collect string
|
| -// operations together into one place and abstract away the underlying
|
| -// string-field pointer representation, so that (for example) an alternate
|
| -// implementation that knew more about ::std::string's internals could integrate more
|
| -// closely with the arena allocator.
|
| -
|
| -namespace google {
|
| -namespace protobuf {
|
| -namespace internal {
|
| -
|
| -struct LIBPROTOBUF_EXPORT ArenaStringPtr {
|
| - inline void Set(const ::std::string* default_value,
|
| - const ::std::string& value, ::google::protobuf::Arena* arena) {
|
| - if (ptr_ == default_value) {
|
| - CreateInstance(arena, &value);
|
| - } else {
|
| - *ptr_ = value;
|
| - }
|
| - }
|
| -
|
| - // Basic accessors.
|
| - inline const ::std::string& Get(const ::std::string* default_value) const {
|
| - return *ptr_;
|
| - }
|
| -
|
| - inline ::std::string* Mutable(const ::std::string* default_value,
|
| - ::google::protobuf::Arena* arena) {
|
| - if (ptr_ == default_value) {
|
| - CreateInstance(arena, default_value);
|
| - }
|
| - return ptr_;
|
| - }
|
| -
|
| - // Release returns a ::std::string* instance that is heap-allocated and is not
|
| - // Own()'d by any arena. If the field was not set, it returns NULL. The caller
|
| - // retains ownership. Clears this field back to NULL state. Used to implement
|
| - // release_<field>() methods on generated classes.
|
| - inline ::std::string* Release(const ::std::string* default_value,
|
| - ::google::protobuf::Arena* arena) {
|
| - if (ptr_ == default_value) {
|
| - return NULL;
|
| - }
|
| - ::std::string* released = NULL;
|
| - if (arena != NULL) {
|
| - // ptr_ is owned by the arena -- we need to return a copy.
|
| - released = new ::std::string(*ptr_);
|
| - } else {
|
| - released = ptr_;
|
| - }
|
| - ptr_ = const_cast< ::std::string* >(default_value);
|
| - return released;
|
| - }
|
| -
|
| - // UnsafeArenaRelease returns a ::std::string*, but it may be arena-owned (i.e.
|
| - // have its destructor already registered) if arena != NULL. If the field was
|
| - // not set, this returns NULL. This method clears this field back to NULL
|
| - // state. Used to implement unsafe_arena_release_<field>() methods on
|
| - // generated classes.
|
| - inline ::std::string* UnsafeArenaRelease(const ::std::string* default_value,
|
| - ::google::protobuf::Arena* arena) {
|
| - if (ptr_ == default_value) {
|
| - return NULL;
|
| - }
|
| - ::std::string* released = ptr_;
|
| - ptr_ = const_cast< ::std::string* >(default_value);
|
| - return released;
|
| - }
|
| -
|
| - // Takes a string that is heap-allocated, and takes ownership. The string's
|
| - // destructor is registered with the arena. Used to implement
|
| - // set_allocated_<field> in generated classes.
|
| - inline void SetAllocated(const ::std::string* default_value,
|
| - ::std::string* value, ::google::protobuf::Arena* arena) {
|
| - if (arena == NULL && ptr_ != default_value) {
|
| - Destroy(default_value, arena);
|
| - }
|
| - if (value != NULL) {
|
| - ptr_ = value;
|
| - if (arena != NULL) {
|
| - arena->Own(value);
|
| - }
|
| - } else {
|
| - ptr_ = const_cast< ::std::string* >(default_value);
|
| - }
|
| - }
|
| -
|
| - // Takes a string that has lifetime equal to the arena's lifetime. The arena
|
| - // must be non-null. It is safe only to pass this method a value returned by
|
| - // UnsafeArenaRelease() on another field of a message in the same arena. Used
|
| - // to implement unsafe_arena_set_allocated_<field> in generated classes.
|
| - inline void UnsafeArenaSetAllocated(const ::std::string* default_value,
|
| - ::std::string* value, ::google::protobuf::Arena* arena) {
|
| - if (value != NULL) {
|
| - ptr_ = value;
|
| - } else {
|
| - ptr_ = const_cast< ::std::string* >(default_value);
|
| - }
|
| - }
|
| -
|
| - // Swaps internal pointers. Arena-safety semantics: this is guarded by the
|
| - // logic in Swap()/UnsafeArenaSwap() at the message level, so this method is
|
| - // 'unsafe' if called directly.
|
| - inline void Swap(ArenaStringPtr* other) GOOGLE_ATTRIBUTE_ALWAYS_INLINE {
|
| - std::swap(ptr_, other->ptr_);
|
| - }
|
| -
|
| - // Frees storage (if not on an arena) and sets field to default value.
|
| - inline void Destroy(const ::std::string* default_value,
|
| - ::google::protobuf::Arena* arena) {
|
| - if (arena == NULL && ptr_ != default_value) {
|
| - delete ptr_;
|
| - }
|
| - ptr_ = const_cast< ::std::string* >(default_value);
|
| - }
|
| -
|
| - // Clears content, but keeps allocated string if arena != NULL, to avoid the
|
| - // overhead of heap operations. After this returns, the content (as seen by
|
| - // the user) will always be the empty string. Assumes that |default_value|
|
| - // is an empty string.
|
| - inline void ClearToEmpty(const ::std::string* default_value,
|
| - ::google::protobuf::Arena* arena) {
|
| - if (ptr_ == default_value) {
|
| - // Already set to default (which is empty) -- do nothing.
|
| - } else {
|
| - ptr_->clear();
|
| - }
|
| - }
|
| -
|
| - // Clears content, but keeps allocated string if arena != NULL, to avoid the
|
| - // overhead of heap operations. After this returns, the content (as seen by
|
| - // the user) will always be equal to |default_value|.
|
| - inline void ClearToDefault(const ::std::string* default_value,
|
| - ::google::protobuf::Arena* arena) {
|
| - if (ptr_ == default_value) {
|
| - // Already set to default -- do nothing.
|
| - } else {
|
| - // Have another allocated string -- rather than throwing this away and
|
| - // resetting ptr_ to the canonical default string instance, we just reuse
|
| - // this instance.
|
| - *ptr_ = *default_value;
|
| - }
|
| - }
|
| -
|
| - // Called from generated code / reflection runtime only. Resets value to point
|
| - // to a default string pointer, with the semantics that this ArenaStringPtr
|
| - // does not own the pointed-to memory. Disregards initial value of ptr_ (so
|
| - // this is the *ONLY* safe method to call after construction or when
|
| - // reinitializing after becoming the active field in a oneof union).
|
| - inline void UnsafeSetDefault(const ::std::string* default_value) {
|
| - // Casting away 'const' is safe here: accessors ensure that ptr_ is only
|
| - // returned as a const if it is equal to default_value.
|
| - ptr_ = const_cast< ::std::string* >(default_value);
|
| - }
|
| -
|
| - // The 'NoArena' variants of methods below assume arena == NULL and are
|
| - // optimized to provide very little overhead relative to a raw string pointer
|
| - // (while still being in-memory compatible with other code that assumes
|
| - // ArenaStringPtr). Note the invariant that a class instance that has only
|
| - // ever been mutated by NoArena methods must *only* be in the String state
|
| - // (i.e., tag bits are not used), *NEVER* ArenaString. This allows all
|
| - // tagged-pointer manipulations to be avoided.
|
| - inline void SetNoArena(const ::std::string* default_value,
|
| - const ::std::string& value) {
|
| - if (ptr_ == default_value) {
|
| - CreateInstanceNoArena(&value);
|
| - } else {
|
| - *ptr_ = value;
|
| - }
|
| - }
|
| -
|
| - void AssignWithDefault(const ::std::string* default_value, ArenaStringPtr value);
|
| -
|
| - inline const ::std::string& GetNoArena(const ::std::string* default_value) const {
|
| - return *ptr_;
|
| - }
|
| -
|
| - inline ::std::string* MutableNoArena(const ::std::string* default_value) {
|
| - if (ptr_ == default_value) {
|
| - CreateInstanceNoArena(default_value);
|
| - }
|
| - return ptr_;
|
| - }
|
| -
|
| - inline ::std::string* ReleaseNoArena(const ::std::string* default_value) {
|
| - if (ptr_ == default_value) {
|
| - return NULL;
|
| - } else {
|
| - ::std::string* released = ptr_;
|
| - ptr_ = const_cast< ::std::string* >(default_value);
|
| - return released;
|
| - }
|
| - }
|
| -
|
| - inline void SetAllocatedNoArena(const ::std::string* default_value,
|
| - ::std::string* value) {
|
| - if (ptr_ != default_value) {
|
| - delete ptr_;
|
| - }
|
| - if (value != NULL) {
|
| - ptr_ = value;
|
| - } else {
|
| - ptr_ = const_cast< ::std::string* >(default_value);
|
| - }
|
| - }
|
| -
|
| - inline void DestroyNoArena(const ::std::string* default_value) {
|
| - if (ptr_ != default_value) {
|
| - delete ptr_;
|
| - }
|
| - ptr_ = NULL;
|
| - }
|
| -
|
| - inline void ClearToEmptyNoArena(const ::std::string* default_value) {
|
| - if (ptr_ == default_value) {
|
| - // Nothing: already equal to default (which is the empty string).
|
| - } else {
|
| - ptr_->clear();
|
| - }
|
| - }
|
| -
|
| - inline void ClearToDefaultNoArena(const ::std::string* default_value) {
|
| - if (ptr_ == default_value) {
|
| - // Nothing: already set to default.
|
| - } else {
|
| - // Reuse existing allocated instance.
|
| - *ptr_ = *default_value;
|
| - }
|
| - }
|
| -
|
| - // Internal accessor used only at parse time to provide direct access to the
|
| - // raw pointer from the shared parse routine (in the non-arenas case). The
|
| - // parse routine does the string allocation in order to save code size in the
|
| - // generated parsing code.
|
| - inline ::std::string** UnsafeRawStringPointer() {
|
| - return &ptr_;
|
| - }
|
| -
|
| - private:
|
| - ::std::string* ptr_;
|
| -
|
| - inline void CreateInstance(::google::protobuf::Arena* arena,
|
| - const ::std::string* initial_value)
|
| - GOOGLE_ATTRIBUTE_NOINLINE {
|
| - // Assumes ptr_ is not NULL.
|
| - if (initial_value != NULL) {
|
| - ptr_ = new ::std::string(*initial_value);
|
| - } else {
|
| - ptr_ = new ::std::string();
|
| - }
|
| - if (arena != NULL) {
|
| - arena->Own(ptr_);
|
| - }
|
| - }
|
| - inline void CreateInstanceNoArena(const ::std::string* initial_value)
|
| - GOOGLE_ATTRIBUTE_NOINLINE {
|
| - if (initial_value != NULL) {
|
| - ptr_ = new ::std::string(*initial_value);
|
| - } else {
|
| - ptr_ = new ::std::string();
|
| - }
|
| - }
|
| -};
|
| -
|
| -} // namespace internal
|
| -} // namespace protobuf
|
| -
|
| -
|
| -
|
| -} // namespace google
|
| -#endif // GOOGLE_PROTOBUF_ARENASTRING_H__
|
|
|