1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "scoped_refptr.h" 6 7 struct Foo { 8 int dummy; 9 }; 10 11 struct HasAScopedRefptr { 12 scoped_refptr<Foo> member; 13 GetMemberAsScopedRefptrHasAScopedRefptr14 const scoped_refptr<Foo>& GetMemberAsScopedRefptr() const { return member; } 15 GetMemberAsRawPtrHasAScopedRefptr16 Foo* GetMemberAsRawPtr() const { return member; } 17 }; 18 ExpectsRawPtr(Foo * param)19void ExpectsRawPtr(Foo* param) { 20 Foo* temp = param; 21 } 22 ExpectsScopedRefptr(const scoped_refptr<Foo> & param)23void ExpectsScopedRefptr(const scoped_refptr<Foo>& param) { 24 Foo* temp = param.get(); 25 } 26 CallsRawWithMemberScopedRefptr()27void CallsRawWithMemberScopedRefptr() { 28 HasAScopedRefptr object; 29 ExpectsRawPtr(object.GetMemberAsScopedRefptr()); 30 } 31 CallsRawWithMemberRawPtr()32void CallsRawWithMemberRawPtr() { 33 HasAScopedRefptr object; 34 ExpectsRawPtr(object.GetMemberAsRawPtr()); 35 } 36 CallsScopedWithMemberScopedRefptr()37void CallsScopedWithMemberScopedRefptr() { 38 HasAScopedRefptr object; 39 ExpectsScopedRefptr(object.GetMemberAsScopedRefptr()); 40 } 41 CallsScopedWithMemberRawPtr()42void CallsScopedWithMemberRawPtr() { 43 HasAScopedRefptr object; 44 ExpectsScopedRefptr(object.GetMemberAsScopedRefptr()); 45 } 46