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

Side by Side Diff: swig/Lib/typemaps/carrays.swg

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/typemaps/attribute.swg ('k') | swig/Lib/typemaps/cdata.swg » ('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 /* -----------------------------------------------------------------------------
2 * See the LICENSE file for information on copyright, usage and redistribution
3 * of SWIG, and the README file for authors - http://www.swig.org/release.html.
4 *
5 * carrays.swg
6 *
7 * This library file contains macros that can be used to manipulate simple
8 * pointers as arrays.
9 * ----------------------------------------------------------------------------- */
10
11 /* -----------------------------------------------------------------------------
12 * %array_functions(TYPE,NAME)
13 *
14 * Generates functions for creating and accessing elements of a C array
15 * (as pointers). Creates the following functions:
16 *
17 * TYPE *new_NAME(int nelements)
18 * void delete_NAME(TYPE *);
19 * TYPE NAME_getitem(TYPE *, int index);
20 * void NAME_setitem(TYPE *, int index, TYPE value);
21 *
22 * ----------------------------------------------------------------------------- */
23
24 %define %array_functions(TYPE,NAME)
25 %{
26 static TYPE *new_##NAME(size_t nelements) {
27 return %new_array(nelements, TYPE);
28 }
29
30 static void delete_##NAME(TYPE *ary) {
31 %delete_array(ary);
32 }
33
34 static TYPE NAME##_getitem(TYPE *ary, size_t index) {
35 return ary[index];
36 }
37 static void NAME##_setitem(TYPE *ary, size_t index, TYPE value) {
38 ary[index] = value;
39 }
40 %}
41
42 TYPE *new_##NAME(size_t nelements);
43 void delete_##NAME(TYPE *ary);
44 TYPE NAME##_getitem(TYPE *ary, size_t index);
45 void NAME##_setitem(TYPE *ary, size_t index, TYPE value);
46
47 %enddef
48
49
50 /* -----------------------------------------------------------------------------
51 * %array_class(TYPE,NAME)
52 *
53 * Generates a class wrapper around a C array. The class has the following
54 * interface:
55 *
56 * struct NAME {
57 * NAME(int nelements);
58 * ~NAME();
59 * TYPE getitem(int index);
60 * void setitem(int index, TYPE value);
61 * TYPE * cast();
62 * static NAME *frompointer(TYPE *t);
63 * }
64 *
65 * Use
66 *
67 * %array_class_wrap(TYPE,NAME,GET,SET)
68 *
69 * if you want different names for the get/set methods.
70 * ----------------------------------------------------------------------------- */
71
72 %define %array_class_wrap(TYPE,NAME,getitem,setitem)
73 %{
74 typedef TYPE NAME;
75 %}
76
77
78 typedef struct NAME {
79 } NAME;
80
81 %extend NAME {
82
83 NAME(size_t nelements) {
84 return %new_array(nelements, TYPE);
85 }
86
87 ~NAME() {
88 %delete_array(self);
89 }
90
91 TYPE getitem(size_t index) {
92 return self[index];
93 }
94
95 void setitem(size_t index, TYPE value) {
96 self[index] = value;
97 }
98
99 TYPE * cast() {
100 return self;
101 }
102
103 static NAME *frompointer(TYPE *t) {
104 return %static_cast(t, NAME *);
105 }
106 };
107
108 %types(NAME = TYPE);
109
110 %enddef
111
112
113 #ifndef %array_class
114 %define %array_class(TYPE,NAME)
115 %array_class_wrap(TYPE,NAME,getitem,setitem)
116 %enddef
117 #endif
OLDNEW
« no previous file with comments | « swig/Lib/typemaps/attribute.swg ('k') | swig/Lib/typemaps/cdata.swg » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698