1// Copyright (c) 2014 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 "base/memory/ref_counted.h" 6 7struct Foo : public base::RefCounted<Foo> { 8 int dummy; 9}; 10 11class Bar { 12 scoped_refptr<Foo> TestFunction(); 13}; 14 15scoped_refptr<Foo> CreateFoo(); 16 17// An example of an unsafe conversion--the scoped_refptr will be destroyed by 18// the time function returns, since it's a temporary, so the returned raw 19// pointer may point to a deleted object. 20scoped_refptr<Foo> Bar::TestFunction() { 21 return CreateFoo(); 22} 23