summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/public/testing/WebScopedPtr.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/public/testing/WebScopedPtr.h')
-rw-r--r--chromium/third_party/WebKit/public/testing/WebScopedPtr.h149
1 files changed, 0 insertions, 149 deletions
diff --git a/chromium/third_party/WebKit/public/testing/WebScopedPtr.h b/chromium/third_party/WebKit/public/testing/WebScopedPtr.h
deleted file mode 100644
index 884ff77fa5c..00000000000
--- a/chromium/third_party/WebKit/public/testing/WebScopedPtr.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * 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 WebScopedPtr_h
-#define WebScopedPtr_h
-
-#include <stddef.h>
-
-namespace WebTestRunner {
-
-template<typename Deallocator, typename T>
-class WebScopedPtrBase {
-public:
- // Default constructor. Constructs an empty scoped pointer.
- inline WebScopedPtrBase() : m_ptr(0) { }
-
- // Constructs a scoped pointer from a plain one.
- explicit inline WebScopedPtrBase(T* ptr) : m_ptr(ptr) { }
-
- // Copy constructor removes the pointer from the original to avoid double
- // freeing.
- inline WebScopedPtrBase(const WebScopedPtrBase<Deallocator, T>& rhs)
- : m_ptr(rhs.m_ptr)
- {
- const_cast<WebScopedPtrBase<Deallocator, T>&>(rhs).m_ptr = 0;
- }
-
- // When the destructor of the scoped pointer is executed the plain pointer
- // is deleted using DeleteArray. This implies that you must allocate with
- // NewArray.
- inline ~WebScopedPtrBase()
- {
- if (m_ptr)
- Deallocator::Delete(m_ptr);
- }
-
- inline T* operator->() const { return m_ptr; }
-
- // You can get the underlying pointer out with the * operator.
- inline T* operator*() { return m_ptr; }
-
- // You can use [n] to index as if it was a plain pointer.
- inline T& operator[](size_t i)
- {
- return m_ptr[i];
- }
-
- // You can use [n] to index as if it was a plain pointer.
- const inline T& operator[](size_t i) const
- {
- return m_ptr[i];
- }
-
- // We don't have implicit conversion to a T* since that hinders migration:
- // You would not be able to change a method from returning a T* to
- // returning an WebScopedArrayPtr<T> and then get errors wherever it is used.
- inline T* get() const { return m_ptr; }
-
- inline void reset(T* newValue = 0)
- {
- if (m_ptr)
- Deallocator::Delete(m_ptr);
- m_ptr = newValue;
- }
-
- // Assignment requires an empty (0) WebScopedArrayPtr as the receiver. Like
- // the copy constructor it removes the pointer in the original to avoid
- // double freeing.
- inline WebScopedPtrBase<Deallocator, T>& operator=(const WebScopedPtrBase<Deallocator, T>& rhs)
- {
- reset(rhs.m_ptr);
- const_cast<WebScopedPtrBase<Deallocator, T>&>(rhs).m_ptr = 0;
- return *this;
- }
-
- inline bool isEmpty() { return !m_ptr; }
-
-private:
- T* m_ptr;
-};
-
-// A 'scoped array pointer' that calls DeleteArray on its pointer when the
-// destructor is called.
-template<typename T>
-struct ArrayDeallocator {
- static void Delete(T* array)
- {
- DeleteArray(array);
- }
-};
-
-template<typename T>
-class WebScopedArrayPtr: public WebScopedPtrBase<ArrayDeallocator<T>, T> {
-public:
- inline WebScopedArrayPtr() { }
- explicit inline WebScopedArrayPtr(T* ptr)
- : WebScopedPtrBase<ArrayDeallocator<T>, T>(ptr) { }
- inline WebScopedArrayPtr(const WebScopedArrayPtr<T>& rhs)
- : WebScopedPtrBase<ArrayDeallocator<T>, T>(rhs) { }
-};
-
-template<typename T>
-struct ObjectDeallocator {
- static void Delete(T* object)
- {
- delete object;
- }
-};
-
-template<typename T>
-class WebScopedPtr: public WebScopedPtrBase<ObjectDeallocator<T>, T> {
-public:
- inline WebScopedPtr() { }
- explicit inline WebScopedPtr(T* ptr)
- : WebScopedPtrBase<ObjectDeallocator<T>, T>(ptr) { }
- inline WebScopedPtr(const WebScopedPtr<T>& rhs)
- : WebScopedPtrBase<ObjectDeallocator<T>, T>(rhs) { }
-};
-
-} // namespace WebTestRunner
-
-#endif // WebScopedPtr_h