Index: third_party/protobuf/src/google/protobuf/stubs/scoped_ptr.h |
diff --git a/third_party/protobuf/src/google/protobuf/stubs/scoped_ptr.h b/third_party/protobuf/src/google/protobuf/stubs/scoped_ptr.h |
deleted file mode 100644 |
index 4423c118c40b54a3287f7982542108048c565333..0000000000000000000000000000000000000000 |
--- a/third_party/protobuf/src/google/protobuf/stubs/scoped_ptr.h |
+++ /dev/null |
@@ -1,236 +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_STUBS_SCOPED_PTR_H_ |
-#define GOOGLE_PROTOBUF_STUBS_SCOPED_PTR_H_ |
- |
-#include <google/protobuf/stubs/port.h> |
- |
-namespace google { |
-namespace protobuf { |
- |
-// =================================================================== |
-// from google3/base/scoped_ptr.h |
- |
-namespace internal { |
- |
-// This is an implementation designed to match the anticipated future TR2 |
-// implementation of the scoped_ptr class, and its closely-related brethren, |
-// scoped_array, scoped_ptr_malloc, and make_scoped_ptr. |
- |
-template <class C> class scoped_ptr; |
-template <class C> class scoped_array; |
- |
-// A scoped_ptr<T> is like a T*, except that the destructor of scoped_ptr<T> |
-// automatically deletes the pointer it holds (if any). |
-// That is, scoped_ptr<T> owns the T object that it points to. |
-// Like a T*, a scoped_ptr<T> may hold either NULL or a pointer to a T object. |
-// |
-// The size of a scoped_ptr is small: |
-// sizeof(scoped_ptr<C>) == sizeof(C*) |
-template <class C> |
-class scoped_ptr { |
- public: |
- |
- // The element type |
- typedef C element_type; |
- |
- // Constructor. Defaults to initializing with NULL. |
- // There is no way to create an uninitialized scoped_ptr. |
- // The input parameter must be allocated with new. |
- explicit scoped_ptr(C* p = NULL) : ptr_(p) { } |
- |
- // Destructor. If there is a C object, delete it. |
- // We don't need to test ptr_ == NULL because C++ does that for us. |
- ~scoped_ptr() { |
- enum { type_must_be_complete = sizeof(C) }; |
- delete ptr_; |
- } |
- |
- // Reset. Deletes the current owned object, if any. |
- // Then takes ownership of a new object, if given. |
- // this->reset(this->get()) works. |
- void reset(C* p = NULL) { |
- if (p != ptr_) { |
- enum { type_must_be_complete = sizeof(C) }; |
- delete ptr_; |
- ptr_ = p; |
- } |
- } |
- |
- // Accessors to get the owned object. |
- // operator* and operator-> will assert() if there is no current object. |
- C& operator*() const { |
- assert(ptr_ != NULL); |
- return *ptr_; |
- } |
- C* operator->() const { |
- assert(ptr_ != NULL); |
- return ptr_; |
- } |
- C* get() const { return ptr_; } |
- |
- // Comparison operators. |
- // These return whether two scoped_ptr refer to the same object, not just to |
- // two different but equal objects. |
- bool operator==(C* p) const { return ptr_ == p; } |
- bool operator!=(C* p) const { return ptr_ != p; } |
- |
- // Swap two scoped pointers. |
- void swap(scoped_ptr& p2) { |
- C* tmp = ptr_; |
- ptr_ = p2.ptr_; |
- p2.ptr_ = tmp; |
- } |
- |
- // Release a pointer. |
- // The return value is the current pointer held by this object. |
- // If this object holds a NULL pointer, the return value is NULL. |
- // After this operation, this object will hold a NULL pointer, |
- // and will not own the object any more. |
- C* release() { |
- C* retVal = ptr_; |
- ptr_ = NULL; |
- return retVal; |
- } |
- |
- private: |
- C* ptr_; |
- |
- // Forbid comparison of scoped_ptr types. If C2 != C, it totally doesn't |
- // make sense, and if C2 == C, it still doesn't make sense because you should |
- // never have the same object owned by two different scoped_ptrs. |
- template <class C2> bool operator==(scoped_ptr<C2> const& p2) const; |
- template <class C2> bool operator!=(scoped_ptr<C2> const& p2) const; |
- |
- // Disallow evil constructors |
- scoped_ptr(const scoped_ptr&); |
- void operator=(const scoped_ptr&); |
-}; |
- |
-// scoped_array<C> is like scoped_ptr<C>, except that the caller must allocate |
-// with new [] and the destructor deletes objects with delete []. |
-// |
-// As with scoped_ptr<C>, a scoped_array<C> either points to an object |
-// or is NULL. A scoped_array<C> owns the object that it points to. |
-// |
-// Size: sizeof(scoped_array<C>) == sizeof(C*) |
-template <class C> |
-class scoped_array { |
- public: |
- |
- // The element type |
- typedef C element_type; |
- |
- // Constructor. Defaults to initializing with NULL. |
- // There is no way to create an uninitialized scoped_array. |
- // The input parameter must be allocated with new []. |
- explicit scoped_array(C* p = NULL) : array_(p) { } |
- |
- // Destructor. If there is a C object, delete it. |
- // We don't need to test ptr_ == NULL because C++ does that for us. |
- ~scoped_array() { |
- enum { type_must_be_complete = sizeof(C) }; |
- delete[] array_; |
- } |
- |
- // Reset. Deletes the current owned object, if any. |
- // Then takes ownership of a new object, if given. |
- // this->reset(this->get()) works. |
- void reset(C* p = NULL) { |
- if (p != array_) { |
- enum { type_must_be_complete = sizeof(C) }; |
- delete[] array_; |
- array_ = p; |
- } |
- } |
- |
- // Get one element of the current object. |
- // Will assert() if there is no current object, or index i is negative. |
- C& operator[](std::ptrdiff_t i) const { |
- assert(i >= 0); |
- assert(array_ != NULL); |
- return array_[i]; |
- } |
- |
- // Get a pointer to the zeroth element of the current object. |
- // If there is no current object, return NULL. |
- C* get() const { |
- return array_; |
- } |
- |
- // Comparison operators. |
- // These return whether two scoped_array refer to the same object, not just to |
- // two different but equal objects. |
- bool operator==(C* p) const { return array_ == p; } |
- bool operator!=(C* p) const { return array_ != p; } |
- |
- // Swap two scoped arrays. |
- void swap(scoped_array& p2) { |
- C* tmp = array_; |
- array_ = p2.array_; |
- p2.array_ = tmp; |
- } |
- |
- // Release an array. |
- // The return value is the current pointer held by this object. |
- // If this object holds a NULL pointer, the return value is NULL. |
- // After this operation, this object will hold a NULL pointer, |
- // and will not own the object any more. |
- C* release() { |
- C* retVal = array_; |
- array_ = NULL; |
- return retVal; |
- } |
- |
- private: |
- C* array_; |
- |
- // Forbid comparison of different scoped_array types. |
- template <class C2> bool operator==(scoped_array<C2> const& p2) const; |
- template <class C2> bool operator!=(scoped_array<C2> const& p2) const; |
- |
- // Disallow evil constructors |
- scoped_array(const scoped_array&); |
- void operator=(const scoped_array&); |
-}; |
- |
-} // namespace internal |
- |
-// We made these internal so that they would show up as such in the docs, |
-// but we don't want to stick "internal::" in front of them everywhere. |
-using internal::scoped_ptr; |
-using internal::scoped_array; |
- |
- |
-} // namespace protobuf |
-} // namespace google |
- |
-#endif // GOOGLE_PROTOBUF_STUBS_SCOPED_PTR_H_ |