Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: swig/Lib/intrusive_ptr.i

Issue 553095: Checkin swig binaries for win, linux and Mac... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: '' Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « swig/Lib/exception.i ('k') | swig/Lib/inttypes.i » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Allow for different namespaces for shared_ptr / intrusive_ptr - they could be boost or std or std::tr1
2 // For example for std::tr1, use:
3 // #define SWIG_SHARED_PTR_NAMESPACE std
4 // #define SWIG_SHARED_PTR_SUBNAMESPACE tr1
5 // #define SWIG_INTRUSIVE_PTR_NAMESPACE boost
6 // #define SWIG_INTRUSIVE_PTR_SUBNAMESPACE
7
8 #if !defined(SWIG_INTRUSIVE_PTR_NAMESPACE)
9 # define SWIG_INTRUSIVE_PTR_NAMESPACE boost
10 #endif
11
12 #if defined(SWIG_INTRUSIVE_PTR_SUBNAMESPACE)
13 # define SWIG_INTRUSIVE_PTR_QNAMESPACE SWIG_INTRUSIVE_PTR_NAMESPACE::SWIG_INTRUS IVE_PTR_SUBNAMESPACE
14 #else
15 # define SWIG_INTRUSIVE_PTR_QNAMESPACE SWIG_INTRUSIVE_PTR_NAMESPACE
16 #endif
17
18 namespace SWIG_INTRUSIVE_PTR_NAMESPACE {
19 #if defined(SWIG_INTRUSIVE_PTR_SUBNAMESPACE)
20 namespace SWIG_INTRUSIVE_PTR_SUBNAMESPACE {
21 #endif
22 template <class T> class intrusive_ptr {
23 };
24 #if defined(SWIG_INTRUSIVE_PTR_SUBNAMESPACE)
25 }
26 #endif
27 }
28
29 %fragment("SWIG_intrusive_deleter", "header") {
30 template<class T> struct SWIG_intrusive_deleter {
31 void operator()(T *p) {
32 if (p)
33 intrusive_ptr_release(p);
34 }
35 };
36 }
37
38 %fragment("SWIG_null_deleter", "header") {
39 struct SWIG_null_deleter {
40 void operator() (void const *) const {
41 }
42 };
43 %#define SWIG_NO_NULL_DELETER_0 , SWIG_null_deleter()
44 %#define SWIG_NO_NULL_DELETER_1
45 }
46
47 // Main user macro for defining intrusive_ptr typemaps for both const and non-co nst pointer types
48 // For plain classes, do not use for derived classes
49 %define SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE...)
50 SWIG_INTRUSIVE_PTR_TYPEMAPS(PROXYCLASS, , TYPE)
51 SWIG_INTRUSIVE_PTR_TYPEMAPS(PROXYCLASS, const, TYPE)
52 %enddef
53
54 // Main user macro for defining intrusive_ptr typemaps for both const and non-co nst pointer types
55 // For derived classes
56 %define SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE...)
57 SWIG_INTRUSIVE_PTR_TYPEMAPS(PROXYCLASS, , TYPE)
58 SWIG_INTRUSIVE_PTR_TYPEMAPS(PROXYCLASS, const, TYPE)
59 %types(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > = SWIG_SHARED_PTR_QNAMESPA CE::shared_ptr< BASECLASSTYPE >) %{
60 *newmemory = SWIG_CAST_NEW_MEMORY;
61 return (void *) new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE >(*( SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *)$from);
62 %}
63 %extend TYPE {
64 static SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE > SWIGSharedPtrUp cast(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast) {
65 return swigSharedPtrUpcast;
66 }
67 }
68 %enddef
69
70 // Extra user macro for including classes in intrusive_ptr typemaps for both con st and non-const pointer types
71 // This caters for classes which cannot be wrapped by intrusive_ptrs but are sti ll part of the class hierarchy
72 // For plain classes, do not use for derived classes
73 %define SWIG_INTRUSIVE_PTR_NO_WRAP(PROXYCLASS, TYPE...)
74 SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(PROXYCLASS, , TYPE)
75 SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(PROXYCLASS, const, TYPE)
76 %enddef
77
78 // Extra user macro for including classes in intrusive_ptr typemaps for both con st and non-const pointer types
79 // This caters for classes which cannot be wrapped by intrusive_ptrs but are sti ll part of the class hierarchy
80 // For derived classes
81 %define SWIG_INTRUSIVE_PTR_DERIVED_NO_WRAP(PROXYCLASS, BASECLASSTYPE, TYPE...)
82 SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(PROXYCLASS, , TYPE)
83 SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(PROXYCLASS, const, TYPE)
84 %types(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > = SWIG_SHARED_PTR_QNAMESPA CE::shared_ptr< BASECLASSTYPE >) %{
85 *newmemory = SWIG_CAST_NEW_MEMORY;
86 return (void *) new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE >(*( SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *)$from);
87 %}
88 %extend TYPE {
89 static SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE > SWIGSharedPtrUp cast(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast) {
90 return swigSharedPtrUpcast;
91 }
92 }
93 %enddef
94
95
OLDNEW
« no previous file with comments | « swig/Lib/exception.i ('k') | swig/Lib/inttypes.i » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698