Index: tools/clang/rewrite_scoped_refptr/tests/scoped_refptr.h |
diff --git a/tools/clang/rewrite_scoped_refptr/tests/scoped_refptr.h b/tools/clang/rewrite_scoped_refptr/tests/scoped_refptr.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1ebd323358b650ecef338a18ae3013407ee9d9f5 |
--- /dev/null |
+++ b/tools/clang/rewrite_scoped_refptr/tests/scoped_refptr.h |
@@ -0,0 +1,43 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef SCOPED_REFPTR_H_ |
+#define SCOPED_REFPTR_H_ |
+ |
+// Stub scoped_refptr<T> class that supports an implicit cast to T*. |
+template <class T> |
+class scoped_refptr { |
+ public: |
+ typedef T element_type; |
+ scoped_refptr() : ptr_(0) {} |
+ scoped_refptr(T* p) : ptr_(p) {} |
+ scoped_refptr(const scoped_refptr<T>& r) : ptr_(r.ptr_) {} |
+ |
+ template <typename U> |
+ scoped_refptr(const scoped_refptr<U>& r) |
+ : ptr_(r.get()) {} |
+ |
+ ~scoped_refptr() {} |
+ |
+ T* get() const { return ptr_; } |
+ operator T*() const { return ptr_; } |
+ T* operator->() const { return ptr_; } |
+ |
+ scoped_refptr<T>& operator=(T* p) { |
+ ptr_ = p; |
+ return *this; |
+ } |
+ scoped_refptr<T>& operator=(const scoped_refptr<T>& r) { |
+ return *this = r.ptr_; |
+ } |
+ template <typename U> |
+ scoped_refptr<T>& operator=(const scoped_refptr<U>& r) { |
+ return *this = r.get(); |
+ } |
+ |
+ protected: |
+ T* ptr_; |
+}; |
+ |
+#endif // SCOPED_REFPTR_H_ |