| Index: include/core/SkTScopedPtr.h
|
| diff --git a/include/core/SkTScopedPtr.h b/include/core/SkTScopedPtr.h
|
| deleted file mode 100644
|
| index 580d72f1f80b608af84e50fa6bb84c8e29a40e34..0000000000000000000000000000000000000000
|
| --- a/include/core/SkTScopedPtr.h
|
| +++ /dev/null
|
| @@ -1,76 +0,0 @@
|
| -
|
| -/*
|
| - * Copyright 2011 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -
|
| -#ifndef SkTScopedPtr_DEFINED
|
| -#define SkTScopedPtr_DEFINED
|
| -
|
| -#include "SkTypes.h"
|
| -
|
| -/** \class SkTScopedPtr
|
| - A SkTScopedPtr<T> is like a T*, except that the destructor of SkTScopedPtr<T>
|
| - automatically deletes the pointer it holds (if any). That is, SkTScopedPtr<T>
|
| - owns the T object that it points to. Like a T*, a SkTScopedPtr<T> may hold
|
| - either NULL or a pointer to a T object. Also like T*, SkTScopedPtr<T> is
|
| - thread-compatible, and once you dereference it, you get the threadsafety
|
| - guarantees of T.
|
| -
|
| - The size of a SkTScopedPtr is small: sizeof(SkTScopedPtr<T>) == sizeof(T*)
|
| -*/
|
| -template <typename T> class SkTScopedPtr : SkNoncopyable {
|
| -public:
|
| - explicit SkTScopedPtr(T* o = NULL) : fObj(o) {}
|
| - ~SkTScopedPtr() {
|
| - enum { kTypeMustBeComplete = sizeof(T) };
|
| - delete fObj;
|
| - }
|
| -
|
| - /** Delete the current object, if any. Then take ownership of the
|
| - passed object.
|
| - */
|
| - void reset(T* o = NULL) {
|
| - if (o != fObj) {
|
| - enum { kTypeMustBeComplete = sizeof(T) };
|
| - delete fObj;
|
| - fObj = o;
|
| - }
|
| - }
|
| -
|
| - /** Without deleting the current object, return it and forget about it.
|
| - Similar to calling get() and reset(), but the object is not deleted.
|
| - */
|
| - T* release() {
|
| - T* retVal = fObj;
|
| - fObj = NULL;
|
| - return retVal;
|
| - }
|
| -
|
| - T& operator*() const {
|
| - SkASSERT(fObj != NULL);
|
| - return *fObj;
|
| - }
|
| - T* operator->() const {
|
| - SkASSERT(fObj != NULL);
|
| - return fObj;
|
| - }
|
| - T* get() const { return fObj; }
|
| -
|
| - bool operator==(T* o) const { return fObj == o; }
|
| - bool operator!=(T* o) const { return fObj != o; }
|
| -
|
| -private:
|
| - T* fObj;
|
| -
|
| - // Forbid comparison of SkTScopedPtr types. If T2 != T, it doesn't make
|
| - // sense, and if T2 == T, it still doesn't make sense because the same
|
| - // object can't be owned by two different scoped_ptrs.
|
| - template <class T2> bool operator==(SkTScopedPtr<T2> const& o2) const;
|
| - template <class T2> bool operator!=(SkTScopedPtr<T2> const& o2) const;
|
| -};
|
| -
|
| -#endif
|
|
|