This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Move the work of MGVTBL_SET() from the C pre-processor to mg_vtable.pl
[perl5.git] / mg_vtable.h
1 /* -*- buffer-read-only: t -*-
2  *
3  *    mg_vtable.h
4  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
5  * This file is built by regen/mg_vtable.pl.
6  * Any changes made here will be lost!
7  */
8
9 /* These all need to be 0, not NULL, as NULL can be (void*)0, which is a
10  * pointer to data, whereas we're assigning pointers to functions, which are
11  * not the same beast. ANSI doesn't allow the assignment from one to the other.
12  * (although most, but not all, compilers are prepared to do it)
13  */
14
15 /* order is:
16     get
17     set
18     len
19     clear
20     free
21     copy
22     dup
23     local
24 */
25
26 #ifdef DOINIT
27 EXT_MGVTBL PL_vtbl_sv
28   = { Perl_magic_get, Perl_magic_set, Perl_magic_len, 0, 0, 0, 0, 0 };
29 #else
30 EXT_MGVTBL PL_vtbl_sv;
31 #endif
32
33 #ifdef DOINIT
34 EXT_MGVTBL PL_vtbl_env
35   = { 0, Perl_magic_set_all_env, 0, Perl_magic_clear_all_env, 0, 0, 0, 0 };
36 #else
37 EXT_MGVTBL PL_vtbl_env;
38 #endif
39
40 #ifdef DOINIT
41 EXT_MGVTBL PL_vtbl_envelem
42   = { 0, Perl_magic_setenv, 0, Perl_magic_clearenv, 0, 0, 0, 0 };
43 #else
44 EXT_MGVTBL PL_vtbl_envelem;
45 #endif
46
47 #ifndef PERL_MICRO
48 #ifdef DOINIT
49 EXT_MGVTBL PL_vtbl_sigelem
50   = { Perl_magic_getsig, Perl_magic_setsig, 0, Perl_magic_clearsig, 0, 0, 0, 0 };
51 #else
52 EXT_MGVTBL PL_vtbl_sigelem;
53 #endif
54 #endif
55
56 #ifdef DOINIT
57 EXT_MGVTBL PL_vtbl_pack
58   = { 0, 0, Perl_magic_sizepack, Perl_magic_wipepack, 0, 0, 0, 0 };
59 #else
60 EXT_MGVTBL PL_vtbl_pack;
61 #endif
62
63 #ifdef DOINIT
64 EXT_MGVTBL PL_vtbl_packelem
65   = { Perl_magic_getpack, Perl_magic_setpack, 0, Perl_magic_clearpack, 0, 0, 0, 0 };
66 #else
67 EXT_MGVTBL PL_vtbl_packelem;
68 #endif
69
70 #ifdef DOINIT
71 EXT_MGVTBL PL_vtbl_dbline
72   = { 0, Perl_magic_setdbline, 0, 0, 0, 0, 0, 0 };
73 #else
74 EXT_MGVTBL PL_vtbl_dbline;
75 #endif
76
77 #ifdef DOINIT
78 EXT_MGVTBL PL_vtbl_isa
79   = { 0, Perl_magic_setisa, 0, Perl_magic_clearisa, 0, 0, 0, 0 };
80 #else
81 EXT_MGVTBL PL_vtbl_isa;
82 #endif
83
84 #ifdef DOINIT
85 EXT_MGVTBL PL_vtbl_isaelem
86   = { 0, Perl_magic_setisa, 0, 0, 0, 0, 0, 0 };
87 #else
88 EXT_MGVTBL PL_vtbl_isaelem;
89 #endif
90
91 #ifdef DOINIT
92 EXT_MGVTBL PL_vtbl_arylen
93   = { (int (*)(pTHX_ SV *, MAGIC *))Perl_magic_getarylen, Perl_magic_setarylen, 0, 0, 0, 0, 0, 0 };
94 #else
95 EXT_MGVTBL PL_vtbl_arylen;
96 #endif
97
98 #ifdef DOINIT
99 EXT_MGVTBL PL_vtbl_arylen_p
100   = { 0, 0, 0, 0, Perl_magic_freearylen_p, 0, 0, 0 };
101 #else
102 EXT_MGVTBL PL_vtbl_arylen_p;
103 #endif
104
105 #ifdef DOINIT
106 EXT_MGVTBL PL_vtbl_mglob
107   = { 0, Perl_magic_setmglob, 0, 0, 0, 0, 0, 0 };
108 #else
109 EXT_MGVTBL PL_vtbl_mglob;
110 #endif
111
112 #ifdef DOINIT
113 EXT_MGVTBL PL_vtbl_nkeys
114   = { Perl_magic_getnkeys, Perl_magic_setnkeys, 0, 0, 0, 0, 0, 0 };
115 #else
116 EXT_MGVTBL PL_vtbl_nkeys;
117 #endif
118
119 #ifdef DOINIT
120 EXT_MGVTBL PL_vtbl_taint
121   = { Perl_magic_gettaint, Perl_magic_settaint, 0, 0, 0, 0, 0, 0 };
122 #else
123 EXT_MGVTBL PL_vtbl_taint;
124 #endif
125
126 #ifdef DOINIT
127 EXT_MGVTBL PL_vtbl_substr
128   = { Perl_magic_getsubstr, Perl_magic_setsubstr, 0, 0, 0, 0, 0, 0 };
129 #else
130 EXT_MGVTBL PL_vtbl_substr;
131 #endif
132
133 #ifdef DOINIT
134 EXT_MGVTBL PL_vtbl_vec
135   = { Perl_magic_getvec, Perl_magic_setvec, 0, 0, 0, 0, 0, 0 };
136 #else
137 EXT_MGVTBL PL_vtbl_vec;
138 #endif
139
140 #ifdef DOINIT
141 EXT_MGVTBL PL_vtbl_pos
142   = { Perl_magic_getpos, Perl_magic_setpos, 0, 0, 0, 0, 0, 0 };
143 #else
144 EXT_MGVTBL PL_vtbl_pos;
145 #endif
146
147 #ifdef DOINIT
148 EXT_MGVTBL PL_vtbl_bm
149   = { 0, Perl_magic_setregexp, 0, 0, 0, 0, 0, 0 };
150 #else
151 EXT_MGVTBL PL_vtbl_bm;
152 #endif
153
154 #ifdef DOINIT
155 EXT_MGVTBL PL_vtbl_fm
156   = { 0, Perl_magic_setregexp, 0, 0, 0, 0, 0, 0 };
157 #else
158 EXT_MGVTBL PL_vtbl_fm;
159 #endif
160
161 #ifdef DOINIT
162 EXT_MGVTBL PL_vtbl_uvar
163   = { Perl_magic_getuvar, Perl_magic_setuvar, 0, 0, 0, 0, 0, 0 };
164 #else
165 EXT_MGVTBL PL_vtbl_uvar;
166 #endif
167
168 #ifdef DOINIT
169 EXT_MGVTBL PL_vtbl_defelem
170   = { Perl_magic_getdefelem, Perl_magic_setdefelem, 0, 0, 0, 0, 0, 0 };
171 #else
172 EXT_MGVTBL PL_vtbl_defelem;
173 #endif
174
175 #ifdef DOINIT
176 EXT_MGVTBL PL_vtbl_regexp
177   = { 0, Perl_magic_setregexp, 0, 0, 0, 0, 0, 0 };
178 #else
179 EXT_MGVTBL PL_vtbl_regexp;
180 #endif
181
182 #ifdef DOINIT
183 EXT_MGVTBL PL_vtbl_regdata
184   = { 0, 0, Perl_magic_regdata_cnt, 0, 0, 0, 0, 0 };
185 #else
186 EXT_MGVTBL PL_vtbl_regdata;
187 #endif
188
189 #ifdef DOINIT
190 EXT_MGVTBL PL_vtbl_regdatum
191   = { Perl_magic_regdatum_get, Perl_magic_regdatum_set, 0, 0, 0, 0, 0, 0 };
192 #else
193 EXT_MGVTBL PL_vtbl_regdatum;
194 #endif
195
196 #ifdef DOINIT
197 EXT_MGVTBL PL_vtbl_amagic
198   = { 0, Perl_magic_setamagic, 0, 0, Perl_magic_setamagic, 0, 0, 0 };
199 #else
200 EXT_MGVTBL PL_vtbl_amagic;
201 #endif
202
203 #ifdef DOINIT
204 EXT_MGVTBL PL_vtbl_amagicelem
205   = { 0, Perl_magic_setamagic, 0, 0, Perl_magic_setamagic, 0, 0, 0 };
206 #else
207 EXT_MGVTBL PL_vtbl_amagicelem;
208 #endif
209
210 #ifdef DOINIT
211 EXT_MGVTBL PL_vtbl_backref
212   = { 0, 0, 0, 0, Perl_magic_killbackrefs, 0, 0, 0 };
213 #else
214 EXT_MGVTBL PL_vtbl_backref;
215 #endif
216
217 #ifdef DOINIT
218 EXT_MGVTBL PL_vtbl_ovrld
219   = { 0, 0, 0, 0, Perl_magic_freeovrld, 0, 0, 0 };
220 #else
221 EXT_MGVTBL PL_vtbl_ovrld;
222 #endif
223
224 #ifdef DOINIT
225 EXT_MGVTBL PL_vtbl_utf8
226   = { 0, Perl_magic_setutf8, 0, 0, 0, 0, 0, 0 };
227 #else
228 EXT_MGVTBL PL_vtbl_utf8;
229 #endif
230
231 #ifdef USE_LOCALE_COLLATE
232 #ifdef DOINIT
233 EXT_MGVTBL PL_vtbl_collxfrm
234   = { 0, Perl_magic_setcollxfrm, 0, 0, 0, 0, 0, 0 };
235 #else
236 EXT_MGVTBL PL_vtbl_collxfrm;
237 #endif
238 #endif
239
240 #ifdef DOINIT
241 EXT_MGVTBL PL_vtbl_hintselem
242   = { 0, Perl_magic_sethint, 0, Perl_magic_clearhint, 0, 0, 0, 0 };
243 #else
244 EXT_MGVTBL PL_vtbl_hintselem;
245 #endif
246
247 #ifdef DOINIT
248 EXT_MGVTBL PL_vtbl_hints
249   = { 0, 0, 0, Perl_magic_clearhints, 0, 0, 0, 0 };
250 #else
251 EXT_MGVTBL PL_vtbl_hints;
252 #endif
253
254
255 /* ex: set ro: */