2 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or
8 // (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 // Smart (ref-counting) pointer classes. Uses "intrusive" approach:
20 // the types pointed to must have add_ref() and drop_ref() methods.
21 // Typically this is done by inheriting from a ref_counted class,
22 // although the nice thing about templates is that no particular
23 // ref-counted class is mandated.
29 #include "ref_counted.h"
31 // TODO: drop all users of this macro, we _are_ using GC now
32 #define GNASH_USE_GC 1
39 #define COMPILER_SUPPORTS_ARGUMENT_DEPENDENT_LOOKUP 1
40 #ifdef COMPILER_SUPPORTS_ARGUMENT_DEPENDENT_LOOKUP
47 intrusive_ptr_add_ref(const ref_counted
* o
)
53 intrusive_ptr_release(const ref_counted
* o
)
58 // These two should not be needed when we switch all GcResource
59 // pointers to use the gc_ptr instead of the intrusive_ptr
61 inline void intrusive_ptr_add_ref(const GcResource
* ) { }
62 inline void intrusive_ptr_release(const GcResource
* ) { }
64 } // namespace boost||gnash
74 // indent-tabs-mode: t