• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 Bar : public Foo {
12   int another_dummy;
13 };
14 
ExpectsRawPtr(Foo * foo)15 void ExpectsRawPtr(Foo* foo) {
16   Foo* temp = foo;
17 }
18 
19 // Ensure that de-referencing scoped_refptr<>'s are properly rewritten as
20 // ->get() calls, and that the correct conversion is rewritten (eg: not the
21 // Bar* -> Foo* conversion).
GetHeapFoo()22 Foo* GetHeapFoo() {
23   scoped_refptr<Bar>* heap_allocated = new scoped_refptr<Bar>();
24   *heap_allocated = new Bar;
25   return heap_allocated->get();
26 }
27