Skip to content
Newer
Older
100644 719 lines (548 sloc) 25.3 KB
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
1 /*
2 +----------------------------------------------------------------------+
3 | Zend Engine |
4 +----------------------------------------------------------------------+
4223aa4 @sebastianbergmann MFH: Bump year.
sebastianbergmann authored Jan 1, 2007
5 | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
6 +----------------------------------------------------------------------+
d863d52 @sebastianbergmann Update headers.
sebastianbergmann authored Dec 11, 2001
7 | This source file is subject to version 2.00 of the Zend license, |
493f39d - MFH: Fix bug #37212 (Access to protected property of common base cl…
Marcus Boerger authored May 27, 2006
8 | that is bundled with this package in the file LICENSE, and is |
f68c7ff updating license information in the headers.
James Cox authored Jun 10, 2003
9 | available through the world-wide-web at the following url: |
d863d52 @sebastianbergmann Update headers.
sebastianbergmann authored Dec 11, 2001
10 | http://www.zend.com/license/2_00.txt. |
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
11 | If you did not receive a copy of the Zend license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@zend.com so we can mail you a copy immediately. |
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
14 +----------------------------------------------------------------------+
15 | Authors: Andi Gutmans <andi@zend.com> |
16 | Zeev Suraski <zeev@zend.com> |
17 +----------------------------------------------------------------------+
18 */
19
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
20 /* $Id$ */
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
21
a617217 Replace macros which begin with an underscore through an appropiately
Sascha Schumann authored Jul 3, 2000
22 #ifndef ZEND_COMPILE_H
23 #define ZEND_COMPILE_H
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
24
25 #include "zend.h"
fa76f0c @zsuraski Compile fix
zsuraski authored Apr 14, 1999
26
009025e * header file cleanup
Stig S. Bakken authored Sep 6, 1999
27 #ifdef HAVE_STDARG_H
28 # include <stdarg.h>
fa76f0c @zsuraski Compile fix
zsuraski authored Apr 14, 1999
29 #endif
30
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
31 #include "zend_llist.h"
32
33 #define DEBUG_ZEND 0
fcaf734 @andigutmans - Don't support interactive mode when thread safe.
andigutmans authored May 2, 1999
34
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
35 #define FREE_PNODE(znode) zval_dtor(&znode->u.constant);
36
1ccf940 @andigutmans - Move SET_UNUSED() to header
andigutmans authored Nov 11, 2000
37 #define SET_UNUSED(op) (op).op_type = IS_UNUSED
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
38
0291ad5 Fixed bug #40236 (php -a function allocation eats memory)
Dmitry Stogov authored Feb 15, 2007
39 #define INC_BPC(op_array) if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) { ((op_array)->backpatch_count++); }
40 #define DEC_BPC(op_array) if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) { ((op_array)->backpatch_count--); }
41 #define HANDLE_INTERACTIVE() if (CG(active_op_array)->fn_flags & ZEND_ACC_INTERACTIVE) { execute_new_code(TSRMLS_C); }
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
42
58a0ee0 Fixed bug #26456 (Wrong results from Reflection-API getDocComment() w…
Dmitry Stogov authored Jun 7, 2005
43 #define RESET_DOC_COMMENT() \
44 { \
45 if (CG(doc_comment)) { \
46 efree(CG(doc_comment)); \
47 CG(doc_comment) = NULL; \
48 } \
49 CG(doc_comment_len) = 0; \
1885d00 Simplify.
Andrei Zmievski authored Apr 2, 2003
50 }
bdd3b60 Implement a different way to catch documentation comments.
Andrei Zmievski authored Apr 2, 2003
51
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
52 typedef struct _zend_op_array zend_op_array;
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
53 typedef struct _zend_op zend_op;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
54
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
55 typedef struct _znode {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
56 int op_type;
57 union {
58 zval constant;
59
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
60 zend_uint var;
232b904 @zsuraski Clean up last/size definitions
zsuraski authored Apr 10, 2000
61 zend_uint opline_num; /* Needs to be signed */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
62 zend_op_array *op_array;
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
63 zend_op *jmp_addr;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
64 struct {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
65 zend_uint var; /* dummy */
66 zend_uint type;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
67 } EA;
68 } u;
69 } znode;
70
536d4d8 @andigutmans - Improve opcode dispatching
andigutmans authored Oct 19, 2002
71 typedef struct _zend_execute_data zend_execute_data;
72
edb7c7d @andigutmans - Stop using garbage. Please let me know if you find any bugs resulting
andigutmans authored Aug 19, 2004
73 #define ZEND_OPCODE_HANDLER_ARGS zend_execute_data *execute_data TSRMLS_DC
74 #define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU execute_data TSRMLS_CC
536d4d8 @andigutmans - Improve opcode dispatching
andigutmans authored Oct 19, 2002
75
76 typedef int (*opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS);
77
f82ed13 @andigutmans - Commit new VM architecture. This one allows people (aka Derick) to
andigutmans authored Sep 23, 2004
78 extern ZEND_API opcode_handler_t *zend_opcode_handlers;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
79
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
80 struct _zend_op {
6f9bfe5 @andigutmans - Shift around zend_op members
andigutmans authored Nov 5, 2002
81 opcode_handler_t handler;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
82 znode result;
83 znode op1;
84 znode op2;
39a7f4c @zsuraski This patch is a go. Not fully optimized yet, but working properly.
zsuraski authored Apr 12, 1999
85 ulong extended_value;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
86 uint lineno;
6f9bfe5 @andigutmans - Shift around zend_op members
andigutmans authored Nov 5, 2002
87 zend_uchar opcode;
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
88 };
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
89
90
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
91 typedef struct _zend_brk_cont_element {
cd6537e Fixed bugs #34065 and #38623 (throw in foreach/switch causes memory l…
Dmitry Stogov authored Sep 19, 2006
92 int start;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
93 int cont;
94 int brk;
95 int parent;
96 } zend_brk_cont_element;
97
98
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
99 typedef struct _zend_try_catch_element {
100 zend_uint try_op;
101 zend_uint catch_op; /* ketchup! */
102 } zend_try_catch_element;
103
104
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
105 /* method flags (types) */
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
106 #define ZEND_ACC_STATIC 0x01
107 #define ZEND_ACC_ABSTRACT 0x02
108 #define ZEND_ACC_FINAL 0x04
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
109 #define ZEND_ACC_IMPLEMENTED_ABSTRACT 0x08
6020ffd Simplify detection of methods that must be called dynamic (with object)
Marcus Boerger authored Jan 23, 2004
110
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
111 /* class flags (types) */
112 /* ZEND_ACC_IMPLICIT_ABSTRACT_CLASS is used for abstract classes (since it is set by any abstract method even interfaces MAY have it set, too). */
113 /* ZEND_ACC_EXPLICIT_ABSTRACT_CLASS denotes that a class was explicitly defined as abstract by using the keyword. */
114 #define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS 0x10
115 #define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS 0x20
116 #define ZEND_ACC_FINAL_CLASS 0x40
117 #define ZEND_ACC_INTERFACE 0x80
e8214a3 @andigutmans - Commit Marcus' cleanup of abstract and static inheritance and improve
andigutmans authored Nov 23, 2002
118
0291ad5 Fixed bug #40236 (php -a function allocation eats memory)
Dmitry Stogov authored Feb 15, 2007
119 /* op_array flags */
120 #define ZEND_ACC_INTERACTIVE 0x10
121
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
122 /* method flags (visibility) */
32b100e @zsuraski - Allow variables to have both 'static' modifier and an access level.
zsuraski authored Dec 9, 2002
123 /* The order of those must be kept - public < protected < private */
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
124 #define ZEND_ACC_PUBLIC 0x100
125 #define ZEND_ACC_PROTECTED 0x200
126 #define ZEND_ACC_PRIVATE 0x400
dc5c790 @zsuraski Treat the absence of an access type just as if 'public' was supplied
zsuraski authored Dec 8, 2002
127 #define ZEND_ACC_PPP_MASK (ZEND_ACC_PUBLIC | ZEND_ACC_PROTECTED | ZEND_ACC_PRIVATE)
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
128
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
129 #define ZEND_ACC_CHANGED 0x800
130 #define ZEND_ACC_IMPLICIT_PUBLIC 0x1000
77208ec @zsuraski Fix incorrect linkage of access-levels, when using private methods
zsuraski authored Jan 2, 2003
131
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
132 /* method flags (special method detection) */
fbda310 - Flag ctor/dtor methods
Marcus Boerger authored Aug 23, 2003
133 #define ZEND_ACC_CTOR 0x2000
7c2e02d Disallow static declaration of clone
Marcus Boerger authored Jan 23, 2004
134 #define ZEND_ACC_DTOR 0x4000
135 #define ZEND_ACC_CLONE 0x8000
1c2512d - Add fn_flag ZEND_ACC_ALIAS
Marcus Boerger authored Aug 24, 2003
136
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
137 /* method flag (bc only), any method that has this flag can be used statically and non statically. */
138 #define ZEND_ACC_ALLOW_STATIC 0x10000
139
2cb5215 @smalyshev MF50: fix #29689 and more private property problems
smalyshev authored Jun 9, 2005
140 /* shadow of parent's private method/property */
141 #define ZEND_ACC_SHADOW 0x20000
142
941b065 - MFH: Function deprecation flag
Marcus Boerger authored Feb 25, 2006
143 /* deprecation flag */
144 #define ZEND_ACC_DEPRECATED 0x40000
145
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
146 char *zend_visibility_string(zend_uint fn_flags);
e8214a3 @andigutmans - Commit Marcus' cleanup of abstract and static inheritance and improve
andigutmans authored Nov 23, 2002
147
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
148
149 typedef struct _zend_property_info {
150 zend_uint flags;
151 char *name;
152 int name_length;
153 ulong h;
67a226d - Add ReflectionProperty::getDocComment()
Marcus Boerger authored Apr 19, 2005
154 char *doc_comment;
155 int doc_comment_len;
493f39d - MFH: Fix bug #37212 (Access to protected property of common base cl…
Marcus Boerger authored May 27, 2006
156 zend_class_entry *ce;
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
157 } zend_property_info;
158
159
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
160 typedef struct _zend_arg_info {
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
161 const char *name;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
162 zend_uint name_len;
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
163 const char *class_name;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
164 zend_uint class_name_len;
1a72341 Added array type hinting. (This patch requires full re-make)
Dmitry Stogov authored May 26, 2005
165 zend_bool array_type_hint;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
166 zend_bool allow_null;
167 zend_bool pass_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
168 zend_bool return_reference;
7086634 @zsuraski - Improve ARG_INFO() macros to support supplying required_num_args
zsuraski authored Feb 25, 2004
169 int required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
170 } zend_arg_info;
171
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
172 typedef struct _zend_compiled_variable {
173 char *name;
174 int name_len;
175 ulong hash_value;
176 } zend_compiled_variable;
177
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
178 struct _zend_op_array {
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
179 /* Common elements */
180 zend_uchar type;
181 char *function_name;
182 zend_class_entry *scope;
183 zend_uint fn_flags;
184 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
185 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
186 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
187 zend_arg_info *arg_info;
188 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
189 unsigned char return_reference;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
190 /* END of common elements */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
191
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
192 zend_uint *refcount;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
193
194 zend_op *opcodes;
232b904 @zsuraski Clean up last/size definitions
zsuraski authored Apr 10, 2000
195 zend_uint last, size;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
196
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
197 zend_compiled_variable *vars;
198 int last_var, size_var;
199
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
200 zend_uint T;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
201
202 zend_brk_cont_element *brk_cont_array;
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
203 zend_uint last_brk_cont;
204 zend_uint current_brk_cont;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
205
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
206 zend_try_catch_element *try_catch_array;
207 int last_try_catch;
208
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
209 /* static variables support */
210 HashTable *static_variables;
211
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
212 zend_op *start_op;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
213 int backpatch_count;
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
214
42d1529 @zsuraski Fix possible bug with extension dtors being called without the ctors …
zsuraski authored Apr 29, 2000
215 zend_bool done_pass_two;
0ce019f @andigutmans - Fix issues with $this when using it by itself without indirection s…
andigutmans authored Mar 15, 2002
216 zend_bool uses_this;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
217
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
218 char *filename;
5657b83 Multi-purpose patch:
Andrei Zmievski authored Mar 31, 2003
219 zend_uint line_start;
220 zend_uint line_end;
221 char *doc_comment;
222 zend_uint doc_comment_len;
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
223
b5f5e9a @andigutmans - Optimize the execute stack a bit.
andigutmans authored Aug 15, 1999
224 void *reserved[ZEND_MAX_RESERVED_RESOURCES];
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
225 };
226
227
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
228 #define ZEND_RETURN_VALUE 0
229 #define ZEND_RETURN_REFERENCE 1
230
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
231 typedef struct _zend_internal_function {
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
232 /* Common elements */
233 zend_uchar type;
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
234 char * function_name;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
235 zend_class_entry *scope;
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
236 zend_uint fn_flags;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
237 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
238 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
239 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
240 zend_arg_info *arg_info;
241 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
242 unsigned char return_reference;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
243 /* END of common elements */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
244
245 void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
246 struct _zend_module_entry *module;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
247 } zend_internal_function;
248
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
249 #define ZEND_FN_SCOPE_NAME(function) ((function) && (function)->common.scope ? (function)->common.scope->name : "")
e8214a3 @andigutmans - Commit Marcus' cleanup of abstract and static inheritance and improve
andigutmans authored Nov 23, 2002
250
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
251 typedef union _zend_function {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
252 zend_uchar type; /* MUST be the first element of this struct! */
d1eea3d @andigutmans - Fix bug in nested try/catch's
andigutmans authored Mar 1, 2002
253
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
254 struct {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
255 zend_uchar type; /* never used */
7f35cfd @zsuraski *** empty log message ***
zsuraski authored Oct 25, 1999
256 char *function_name;
d1eea3d @andigutmans - Fix bug in nested try/catch's
andigutmans authored Mar 1, 2002
257 zend_class_entry *scope;
01e853c @andigutmans - My personal cleanups
andigutmans authored Nov 23, 2002
258 zend_uint fn_flags;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
259 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
260 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
261 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
262 zend_arg_info *arg_info;
263 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
264 unsigned char return_reference;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
265 } common;
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
266
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
267 zend_op_array op_array;
268 zend_internal_function internal_function;
269 } zend_function;
270
271
9cb2cf1 @zsuraski Optimize allocations into uninitialized_zval assignments
zsuraski authored May 20, 1999
272 typedef struct _zend_function_state {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
273 HashTable *function_symbol_table;
274 zend_function *function;
b5f5e9a @andigutmans - Optimize the execute stack a bit.
andigutmans authored Aug 15, 1999
275 void *reserved[ZEND_MAX_RESERVED_RESOURCES];
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
276 } zend_function_state;
277
278
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
279 typedef struct _zend_switch_entry {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
280 znode cond;
281 int default_case;
282 int control_var;
283 } zend_switch_entry;
284
285
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
286 typedef struct _list_llist_element {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
287 znode var;
288 zend_llist dimensions;
289 znode value;
290 } list_llist_element;
291
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
292 union _temp_variable;
293
1327480 @andigutmans - Fix compile warning.
andigutmans authored Oct 19, 2002
294 struct _zend_execute_data {
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
295 struct _zend_op *opline;
296 zend_function_state function_state;
297 zend_function *fbc; /* Function Being Called */
41e3f4f @andigutmans - Fix problem with debug_backtrace() reported by Stig. We weren't rep…
andigutmans authored Jul 26, 2002
298 zend_op_array *op_array;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
299 zval *object;
300 union _temp_variable *Ts;
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
301 zval ***CVs;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
302 zend_bool original_in_execution;
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
303 HashTable *symbol_table;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
304 struct _zend_execute_data *prev_execute_data;
f8e8c55 @tony2001 MFH: fix #33771 (error_reporting falls to 0 when @ was used inside tr…
tony2001 authored Sep 22, 2005
305 zval *old_error_reporting;
1327480 @andigutmans - Fix compile warning.
andigutmans authored Oct 19, 2002
306 };
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
307
b66c89c @andigutmans - More debug backtrace work. It still doesn't work very well...
andigutmans authored May 7, 2002
308 #define EX(element) execute_data.element
309
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
310
311 #define IS_CONST (1<<0)
312 #define IS_TMP_VAR (1<<1)
313 #define IS_VAR (1<<2)
314 #define IS_UNUSED (1<<3) /* Unused variable */
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
315 #define IS_CV (1<<4) /* Compiled variable */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
316
317 #define EXT_TYPE_UNUSED (1<<0)
318
df74f1d Add optional support for C0x inline semantics.
Sascha Schumann authored Jun 13, 2000
319 #include "zend_globals.h"
320
ad115d2 @zsuraski Fix require()
zsuraski authored Jan 29, 2000
321 BEGIN_EXTERN_C()
322
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
323 void init_compiler(TSRMLS_D);
324 void shutdown_compiler(TSRMLS_D);
325 void zend_init_compiler_data_structures(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
326
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
327 extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);
7bbf353 MFH: Added hook for compile_string()
Stefan Esser authored Jun 13, 2006
328 extern ZEND_API zend_op_array *(*zend_compile_string)(zval *source_string, char *filename TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
329
1fd542f @sebastianbergmann Export lex_scan(). Both the PHPDoc and tokenizer extension need this.…
sebastianbergmann authored Feb 10, 2002
330 ZEND_API int lex_scan(zval *zendlval TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
331 void startup_scanner(TSRMLS_D);
332 void shutdown_scanner(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
333
4187439 @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 30, 2001
334 ZEND_API char *zend_set_compiled_filename(char *new_compiled_filename TSRMLS_DC);
335 ZEND_API void zend_restore_compiled_filename(char *original_compiled_filename TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
336 ZEND_API char *zend_get_compiled_filename(TSRMLS_D);
337 ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
d33500e @zsuraski Thought I committed it ages ago... Anyway, without further delays, th…
zsuraski authored Jun 4, 2005
338 ZEND_API int zend_get_scanned_file_offset(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
339
8838c0f @andigutmans - Two new API calls for Derick (retreive CV name and value) by Dmitry
andigutmans authored Jan 22, 2005
340 ZEND_API char* zend_get_compiled_variable_name(zend_op_array *op_array, zend_uint var, int* name_len);
341
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
342 #ifdef ZTS
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
343 const char *zend_get_zendtext(TSRMLS_D);
344 int zend_get_zendleng(TSRMLS_D);
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
345 #endif
346
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
347
348 /* parser-driven code generators */
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
349 void zend_do_binary_op(zend_uchar op, znode *result, znode *op1, znode *op2 TSRMLS_DC);
350 void zend_do_unary_op(zend_uchar op, znode *result, znode *op1 TSRMLS_DC);
351 void zend_do_binary_assign_op(zend_uchar op, znode *result, znode *op1, znode *op2 TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
352 void zend_do_assign(znode *result, znode *variable, znode *value TSRMLS_DC);
353 void zend_do_assign_ref(znode *result, znode *lvar, znode *rvar TSRMLS_DC);
354 void fetch_simple_variable(znode *result, znode *varname, int bp TSRMLS_DC);
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
355 void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar op TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
356 void zend_do_indirect_references(znode *result, znode *num_references, znode *variable TSRMLS_DC);
830c2e0 @smalyshev fix statics - make it behave like $this (fetch type "static")
smalyshev authored Nov 10, 2002
357 void zend_do_fetch_static_variable(znode *varname, znode *static_assignment, int fetch_type TSRMLS_DC);
358 void zend_do_fetch_global_variable(znode *varname, znode *static_assignment, int fetch_type TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
359
360 void fetch_array_begin(znode *result, znode *varname, znode *first_dim TSRMLS_DC);
361 void fetch_array_dim(znode *result, znode *parent, znode *dim TSRMLS_DC);
362 void fetch_string_offset(znode *result, znode *parent, znode *offset TSRMLS_DC);
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
363 void zend_do_fetch_static_member(znode *result, znode *class_znode TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
364 void zend_do_print(znode *result, znode *arg TSRMLS_DC);
365 void zend_do_echo(znode *arg TSRMLS_DC);
8802964 * fix some casts
Sascha Schumann authored May 30, 1999
366 typedef int (*unary_op_type)(zval *, zval *);
367 ZEND_API unary_op_type get_unary_op(int opcode);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
368 ZEND_API void *get_binary_op(int opcode);
369
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
370 void zend_do_while_cond(znode *expr, znode *close_bracket_token TSRMLS_DC);
371 void zend_do_while_end(znode *while_token, znode *close_bracket_token TSRMLS_DC);
372 void zend_do_do_while_begin(TSRMLS_D);
373 void zend_do_do_while_end(znode *do_token, znode *expr_open_bracket, znode *expr TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
374
375
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
376 void zend_do_if_cond(znode *cond, znode *closing_bracket_token TSRMLS_DC);
377 void zend_do_if_after_statement(znode *closing_bracket_token, unsigned char initialize TSRMLS_DC);
378 void zend_do_if_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
379
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
380 void zend_do_for_cond(znode *expr, znode *second_semicolon_token TSRMLS_DC);
381 void zend_do_for_before_statement(znode *cond_start, znode *second_semicolon_token TSRMLS_DC);
382 void zend_do_for_end(znode *second_semicolon_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
383
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
384 void zend_do_pre_incdec(znode *result, znode *op1, zend_uchar op TSRMLS_DC);
385 void zend_do_post_incdec(znode *result, znode *op1, zend_uchar op TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
386
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
387 void zend_do_begin_variable_parse(TSRMLS_D);
388 void zend_do_end_variable_parse(int type, int arg_offset TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
389
ac7ed46 @andigutmans - Start adding parsed variable checks.
andigutmans authored Dec 16, 2001
390 void zend_check_writable_variable(znode *variable);
391
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
392 void zend_do_free(znode *op1 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
393
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
394 void zend_do_init_string(znode *result TSRMLS_DC);
395 void zend_do_add_string(znode *result, znode *op1, znode *op2 TSRMLS_DC);
396 void zend_do_add_variable(znode *result, znode *op1, znode *op2 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
397
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
398 int zend_do_verify_access_types(znode *current_access_type, znode *new_modifier);
26dd849 @zsuraski Add support for interfaces
zsuraski authored Mar 5, 2003
399 void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference, znode *fn_flags_znode TSRMLS_DC);
e6255b0 Revert portions of the doc comment patch. There should be no parser
Andrei Zmievski authored Apr 2, 2003
400 void zend_do_end_function_declaration(znode *function_token TSRMLS_DC);
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
401 void zend_do_receive_arg(zend_uchar op, znode *var, znode *offset, znode *initialization, znode *class_type, znode *varname, zend_bool pass_by_reference TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
402 int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace TSRMLS_DC);
2ce4b47 @andigutmans - Initial support for _clone()
andigutmans authored Dec 26, 2001
403 void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC);
8e30d96 @zsuraski Redesign the clone() feature to fix some fundamental flaws in the pre…
zsuraski authored Feb 2, 2004
404 void zend_do_clone(znode *result, znode *expr TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
405 void zend_do_begin_dynamic_function_call(znode *function_name, int prefix_len TSRMLS_DC);
f7f5a5e @smalyshev MEGA-patch: namespaces are R.I.P.
smalyshev authored Jun 2, 2003
406 void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC);
d344648 @andigutmans - Fix __autoload() to preserve class case.
andigutmans authored Nov 24, 2003
407 void zend_do_fetch_class_name(znode *result, znode *class_entry, znode *class_name TSRMLS_DC);
d8efe62 @andigutmans - Fix bug #27669 (Dmitry).
andigutmans authored Sep 16, 2004
408 void zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
409 void zend_do_end_function_call(znode *function_name, znode *result, znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC);
410 void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC);
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
411 void zend_do_handle_exception(TSRMLS_D);
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
412
6197021 @andigutmans - Make it compile in thread-safe mode.
andigutmans authored Aug 30, 2001
413 void zend_do_try(znode *try_token TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
414 void zend_do_begin_catch(znode *try_token, znode *catch_class, znode *catch_var, znode *first_catch TSRMLS_DC);
6197021 @andigutmans - Make it compile in thread-safe mode.
andigutmans authored Aug 30, 2001
415 void zend_do_end_catch(znode *try_token TSRMLS_DC);
416 void zend_do_throw(znode *expr TSRMLS_DC);
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
417
c5d8422 @zsuraski Reinstate early-binding for classes.
zsuraski authored Feb 4, 2004
418 ZEND_API int do_bind_function(zend_op *opline, HashTable *function_table, zend_bool compile_time);
419 ZEND_API zend_class_entry *do_bind_class(zend_op *opline, HashTable *class_table, zend_bool compile_time TSRMLS_DC);
420 ZEND_API zend_class_entry *do_bind_inherited_class(zend_op *opline, HashTable *class_table, zend_class_entry *parent_ce, zend_bool compile_time TSRMLS_DC);
3c62b3b Expand Interface C API.
Marcus Boerger authored Oct 22, 2003
421 ZEND_API void zend_do_inherit_interfaces(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC);
422 ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC);
26dd849 @zsuraski Add support for interfaces
zsuraski authored Mar 5, 2003
423 void zend_do_implements_interface(znode *interface_znode TSRMLS_DC);
f78fa50 @andigutmans - Megapatch to try and support inheritance from sub-classes. Things m…
andigutmans authored Sep 24, 2002
424
4918b67 - Make zend_do_inheritance ZEND_API
Marcus Boerger authored May 28, 2005
425 ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
426 void zend_do_early_binding(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
427
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
428 void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
429
430
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
431 void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC);
432 void zend_do_boolean_or_end(znode *result, znode *expr1, znode *expr2, znode *op_token TSRMLS_DC);
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
433 void zend_do_boolean_and_begin(znode *expr1, znode *op_token TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
434 void zend_do_boolean_and_end(znode *result, znode *expr1, znode *expr2, znode *op_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
435
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
436 void zend_do_brk_cont(zend_uchar op, znode *expr TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
437
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
438 void zend_do_switch_cond(znode *cond TSRMLS_DC);
439 void zend_do_switch_end(znode *case_list TSRMLS_DC);
440 void zend_do_case_before_statement(znode *case_list, znode *case_token, znode *case_expr TSRMLS_DC);
441 void zend_do_case_after_statement(znode *result, znode *case_token TSRMLS_DC);
442 void zend_do_default_before_statement(znode *case_list, znode *default_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
443
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
444 void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znode *parent_class_name TSRMLS_DC);
e6255b0 Revert portions of the doc comment patch. There should be no parser
Andrei Zmievski authored Apr 2, 2003
445 void zend_do_end_class_declaration(znode *class_token, znode *parent_token TSRMLS_DC);
6317e26 @zsuraski - Treat $this->foo inside class X as an implicit 'public $foo' if X::…
zsuraski authored Feb 10, 2003
446 void zend_do_declare_property(znode *var_name, znode *value, zend_uint access_type TSRMLS_DC);
8d2a4e0 @zsuraski Fix bogus implicit declarations of properties (squash bug #23671)
zsuraski authored Jun 9, 2003
447 void zend_do_declare_implicit_property(TSRMLS_D);
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
448 void zend_do_declare_class_constant(znode *var_name, znode *value TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
449
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
450 void zend_do_fetch_property(znode *result, znode *object, znode *property TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
451
17c0c49 Addres limitation of __HALT_COMPILER() that allowed only one instance
Ilia Alshanetsky authored Apr 4, 2007
452 void zend_do_halt_compiler_register(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
453
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
454 void zend_do_push_object(znode *object TSRMLS_DC);
455 void zend_do_pop_object(znode *object TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
456
457
a332f82 @andigutmans - Support instantiation of nested class. The following script now should
andigutmans authored Nov 4, 2001
458 void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC);
459 void zend_do_end_new_object(znode *result, znode *new_token, znode *argument_list TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
460
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
461 void zend_do_fetch_constant(znode *result, znode *constant_container, znode *constant_name, int mode, zend_bool check_namespace TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
462
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
463 void zend_do_shell_exec(znode *result, znode *cmd TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
464
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
465 void zend_do_init_array(znode *result, znode *expr, znode *offset, zend_bool is_ref TSRMLS_DC);
466 void zend_do_add_array_element(znode *result, znode *expr, znode *offset, zend_bool is_ref TSRMLS_DC);
f1a9920 @zsuraski Maintain consistency
zsuraski authored Nov 2, 2000
467 void zend_do_add_static_array_element(znode *result, znode *offset, znode *expr);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
468 void zend_do_list_init(TSRMLS_D);
469 void zend_do_list_end(znode *result, znode *expr TSRMLS_DC);
470 void zend_do_add_list_element(znode *element TSRMLS_DC);
471 void zend_do_new_list_begin(TSRMLS_D);
472 void zend_do_new_list_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
473
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
474 void zend_do_cast(znode *result, znode *expr, int type TSRMLS_DC);
475 void zend_do_include_or_eval(int type, znode *result, znode *op1 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
476
7b68f51 @andigutmans - Nuke delete(). It was a big mistake to introduce it and I finally
andigutmans authored Jul 14, 2002
477 void zend_do_unset(znode *variable TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
478 void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
479
c073b76 @andigutmans - Change "is" to "instanceof" as it explains better what the operator…
andigutmans authored Jan 14, 2003
480 void zend_do_instanceof(znode *result, znode *expr, znode *class_znode, int type TSRMLS_DC);
82c72f2 @- Adding 'is' operator that can be used to check the type of a varia…
Andrei Zmievski authored Jul 30, 2002
481
e470e22 - Fixed bug #35106 (nested foreach fails when array variable has a re…
Dmitry Stogov authored Jan 10, 2007
482 void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, znode *as_token, int variable TSRMLS_DC);
483 void zend_do_foreach_cont(znode *foreach_token, znode *open_brackets_token, znode *as_token, znode *value, znode *key TSRMLS_DC);
a29f539 - Cleanup foreach handling
Marcus Boerger authored Feb 11, 2005
484 void zend_do_foreach_end(znode *foreach_token, znode *as_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
485
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
486 void zend_do_declare_begin(TSRMLS_D);
487 void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC);
b806a8e MFZE1 (use token instead of global for opcode counting)
Jason Greene authored Aug 14, 2002
488 void zend_do_declare_end(znode *declare_token TSRMLS_DC);
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
489
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
490 void zend_do_exit(znode *result, znode *message TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
491
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
492 void zend_do_begin_silence(znode *strudel_token TSRMLS_DC);
493 void zend_do_end_silence(znode *strudel_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
494
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
495 void zend_do_begin_qm_op(znode *cond, znode *qm_token TSRMLS_DC);
496 void zend_do_qm_true(znode *true_value, znode *qm_token, znode *colon_token TSRMLS_DC);
497 void zend_do_qm_false(znode *result, znode *false_value, znode *qm_token, znode *colon_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
498
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
499 void zend_do_extended_info(TSRMLS_D);
500 void zend_do_extended_fcall_begin(TSRMLS_D);
501 void zend_do_extended_fcall_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
502
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
503 void zend_do_ticks(TSRMLS_D);
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
504
2814504 @zsuraski Improve parser handling of 'abstract'
zsuraski authored Feb 11, 2003
505 void zend_do_abstract_method(znode *function_name, znode *modifiers, znode *body TSRMLS_DC);
227f783 @andigutmans - Fix build (thanks Marcus)
andigutmans authored Nov 20, 2002
506
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
507 void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC);
508 void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRMLS_DC);
509 void zend_do_namespace(znode *name TSRMLS_DC);
510 void zend_do_import(znode *name, znode *new_name TSRMLS_DC);
511 void zend_do_end_compilation(TSRMLS_D);
512
727398b @andigutmans Add to the API
andigutmans authored Jun 13, 2000
513 ZEND_API void function_add_ref(zend_function *function);
0b7a9ce @zsuraski - Fix Win32 compilation (Use winsock2.h from now on)
zsuraski authored Jun 3, 2000
514
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
515 #define INITIAL_OP_ARRAY_SIZE 64
516
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
517
7b0d92d @zsuraski Unify the names of these last 3 files...
zsuraski authored Oct 29, 2000
518 /* helper functions in zend_language_scanner.l */
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
519 ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC);
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
520 ZEND_API zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
521 ZEND_API zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC);
819ea51 @zsuraski MFZE1
zsuraski authored Aug 31, 2001
522 ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_count, ...);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
523 ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC);
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
524 ZEND_API void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_size TSRMLS_DC);
3fc8528 @sebastianbergmann Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_cla…
sebastianbergmann authored Mar 26, 2003
525 ZEND_API void destroy_op_array(zend_op_array *op_array TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
526 ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC);
5090b1e @smalyshev Fix zend_fiel_handle handling. Should fix URL include
smalyshev authored Aug 13, 2000
527 ZEND_API void zend_file_handle_dtor(zend_file_handle *fh);
03f88ac @smalyshev Add additional stage to post-session cleanup.
smalyshev authored Jan 29, 2003
528 ZEND_API int zend_cleanup_class_data(zend_class_entry **pce TSRMLS_DC);
529 ZEND_API int zend_cleanup_function_data(zend_function *function TSRMLS_DC);
ad10a53 Optimized cleanup loops on request shutdown
Dmitry Stogov authored Mar 13, 2006
530 ZEND_API int zend_cleanup_function_data_full(zend_function *function TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
531
3fc8528 @sebastianbergmann Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_cla…
sebastianbergmann authored Mar 26, 2003
532 ZEND_API void destroy_zend_function(zend_function *function TSRMLS_DC);
fb5cb59 Fixed Zend Function Destructor to use correct TSRM handle.
Stefan Esser authored Jun 6, 2004
533 ZEND_API void zend_function_dtor(zend_function *function);
92dd5e6 @smalyshev - make class tables contain class_entry *, not class_entry
smalyshev authored Mar 12, 2002
534 ZEND_API void destroy_zend_class(zend_class_entry **pce);
c8c629b @andigutmans - Fix bug introduced with latest class hash table change.
andigutmans authored Mar 12, 2002
535 void zend_class_add_ref(zend_class_entry **ce);
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
536
6923a16 - Fixed var_export() to show public, protected and private modifiers …
Derick Rethans authored Jan 3, 2004
537 ZEND_API void zend_mangle_property_name(char **dest, int *dest_length, char *src1, int src1_length, char *src2, int src2_length, int internal);
519ed8e - Better fix for #34505 and related, drop zend_unmangle_property_name…
Marcus Boerger authored Jul 24, 2006
538 ZEND_API int zend_unmangle_property_name(char *mangled_property, int mangled_property_len, char **prop_name, char **class_name);
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
539
fb5cb59 Fixed Zend Function Destructor to use correct TSRM handle.
Stefan Esser authored Jun 6, 2004
540 #define ZEND_FUNCTION_DTOR (void (*)(void *)) zend_function_dtor
62114c1 @zsuraski Destructors no longer return ints, the low level problem it was inten…
zsuraski authored Jan 17, 2000
541 #define ZEND_CLASS_DTOR (void (*)(void *)) destroy_zend_class
81d901b @zsuraski Step 1 in nuking the garbage collector:
zsuraski authored Jul 9, 1999
542
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
543 zend_op *get_next_op(zend_op_array *op_array TSRMLS_DC);
544 void init_op(zend_op *op TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
545 int get_next_op_number(zend_op_array *op_array);
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
546 int print_class(zend_class_entry *class_entry TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
547 void print_op_array(zend_op_array *op_array, int optimizations);
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
548 int pass_two(zend_op_array *op_array TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
549 zend_brk_cont_element *get_next_brk_cont_element(zend_op_array *op_array);
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
550 void zend_do_first_catch(znode *open_parentheses TSRMLS_DC);
551 void zend_initialize_try_catch_element(znode *try_token TSRMLS_DC);
552 void zend_do_mark_last_catch(znode *first_catch, znode *last_additional_catch TSRMLS_DC);
4187439 @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 30, 2001
553 ZEND_API zend_bool zend_is_compiling(TSRMLS_D);
b577038 @zsuraski Avoid TSRMLS_FETCH()'s (still lots of work left)
zsuraski authored Jul 30, 2001
554 ZEND_API char *zend_make_compiled_string_description(char *name TSRMLS_DC);
9c909f4 @sebastianbergmann Sync: Export externally used functions.
sebastianbergmann authored Dec 16, 2003
555 ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers TSRMLS_DC);
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
556 int zend_get_class_fetch_type(const char *class_name, uint class_name_len);
c17c7a2 @zsuraski Centralize class initialization
zsuraski authored Feb 10, 2003
557
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
558 typedef zend_bool (*zend_auto_global_callback)(char *name, uint name_len TSRMLS_DC);
559 typedef struct _zend_auto_global {
560 char *name;
561 uint name_len;
562 zend_auto_global_callback auto_global_callback;
563 zend_bool armed;
564 } zend_auto_global;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
565
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
566 void zend_auto_global_dtor(zend_auto_global *auto_global);
170de9b export functions needed by cli
Shane Caraveo authored Mar 22, 2003
567 ZEND_API int zend_register_auto_global(char *name, uint name_len, zend_auto_global_callback auto_global_callback TSRMLS_DC);
568 ZEND_API zend_bool zend_is_auto_global(char *name, uint name_len TSRMLS_DC);
e2a5ebf @zsuraski Add ability to disable JIT for a particular auto global
zsuraski authored Mar 16, 2004
569 ZEND_API int zend_auto_global_disable_jit(char *varname, zend_uint varname_length TSRMLS_DC);
9d11db1 @andigutmans - Merge new $_GET, $_POST etc. patch from Engine 1 tree
andigutmans authored Aug 8, 2001
570
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
571 int zendlex(znode *zendlval TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
572
5ae7fa4 add markers that make this file easy to parse for external sources
Sterling Hughes authored Apr 7, 2003
573 /* BEGIN: OPCODES */
f7f5a5e @smalyshev MEGA-patch: namespaces are R.I.P.
smalyshev authored Jun 2, 2003
574
a904c1d @andigutmans - Improve comments, docs, code...
andigutmans authored Oct 27, 2004
575 #include "zend_vm_opcodes.h"
a4c3b2c @smalyshev Namespace patch. Big changes:
smalyshev authored Feb 16, 2003
576
a904c1d @andigutmans - Improve comments, docs, code...
andigutmans authored Oct 27, 2004
577 #define ZEND_OP_DATA 137
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
578
5ae7fa4 add markers that make this file easy to parse for external sources
Sterling Hughes authored Apr 7, 2003
579 /* END: OPCODES */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
580
581
582
583
584 /* global/local fetches */
d2da63f @andigutmans - Support static members. The following script works:
andigutmans authored Nov 25, 2001
585 #define ZEND_FETCH_GLOBAL 0
586 #define ZEND_FETCH_LOCAL 1
587 #define ZEND_FETCH_STATIC 2
588 #define ZEND_FETCH_STATIC_MEMBER 3
343af54 Fixed SIGSEGV on 'global ${"{$blah}_ID"};'
Dmitry Stogov authored Jul 4, 2005
589 #define ZEND_FETCH_GLOBAL_LOCK 4
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
590
68fa4e5 @zsuraski Get rid of an opcode
zsuraski authored Jul 30, 2003
591
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
592 /* class fetches */
593 #define ZEND_FETCH_CLASS_DEFAULT 0
594 #define ZEND_FETCH_CLASS_SELF 1
b3fd2fa @andigutmans - Support parent:: again
andigutmans authored Dec 27, 2001
595 #define ZEND_FETCH_CLASS_PARENT 2
596 #define ZEND_FETCH_CLASS_MAIN 3
a4c3b2c @smalyshev Namespace patch. Big changes:
smalyshev authored Feb 16, 2003
597 #define ZEND_FETCH_CLASS_GLOBAL 4
9d7122f @zsuraski Generalize fetch_class
zsuraski authored Aug 3, 2003
598 #define ZEND_FETCH_CLASS_AUTO 5
12b66c2 Fixed bug #30519 (Interface not existing says Class not found)
Dmitry Stogov authored Jun 24, 2005
599 #define ZEND_FETCH_CLASS_INTERFACE 6
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
600 #define ZEND_FETCH_CLASS_RT_NS_CHECK 0x20
601 #define ZEND_FETCH_CLASS_RT_NS_NAME 0x40
9305339 Changed "instanceof" and "catch" operators, is_a() and is_subclass_of…
Dmitry Stogov authored Sep 9, 2005
602 #define ZEND_FETCH_CLASS_NO_AUTOLOAD 0x80
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
603
880e7d8 @andigutmans - Framework for knowing what kind of variable we just parsed.
andigutmans authored Dec 16, 2001
604 /* variable parsing type (compile-time) */
03b6af0 @zsuraski Support references in foreach()
zsuraski authored Jul 24, 2003
605 #define ZEND_PARSED_MEMBER (1<<0)
606 #define ZEND_PARSED_METHOD_CALL (1<<1)
607 #define ZEND_PARSED_STATIC_MEMBER (1<<2)
608 #define ZEND_PARSED_FUNCTION_CALL (1<<3)
609 #define ZEND_PARSED_VARIABLE (1<<4)
610 #define ZEND_PARSED_REFERENCE_VARIABLE (1<<5)
880e7d8 @andigutmans - Framework for knowing what kind of variable we just parsed.
andigutmans authored Dec 16, 2001
611
612
5af7770 @andigutmans - Sync Engine2 CVS with latest Engine CVS
andigutmans authored Aug 7, 2001
613 /* unset types */
614 #define ZEND_UNSET_REG 0
615
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
616 /* var status for backpatching */
06d04d1 @andigutmans - Fix SEND_VAR problem after fetch'ing a variable and not knowing the…
andigutmans authored Sep 29, 1999
617 #define BP_VAR_R 0
618 #define BP_VAR_W 1
619 #define BP_VAR_RW 2
620 #define BP_VAR_IS 3
621 #define BP_VAR_NA 4 /* if not applicable */
622 #define BP_VAR_FUNC_ARG 5
7fa17e8 @andigutmans - Put in the infrastructure for the unset() fix. Right now it has the…
andigutmans authored Feb 14, 2000
623 #define BP_VAR_UNSET 6
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
624
625
49c4866 @zsuraski - Improve tracking
zsuraski authored Aug 18, 2003
626 #define ZEND_INTERNAL_FUNCTION 1
627 #define ZEND_USER_FUNCTION 2
628 #define ZEND_OVERLOADED_FUNCTION 3
629 #define ZEND_EVAL_CODE 4
630 #define ZEND_OVERLOADED_FUNCTION_TEMPORARY 5
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
631
62f9eb8 Split ZEND_NAMESPACE into user and internal namespaces. Hope this is
Andrei Zmievski authored Apr 1, 2003
632 #define ZEND_INTERNAL_CLASS 1
633 #define ZEND_USER_CLASS 2
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
634
635 #define ZEND_EVAL (1<<0)
636 #define ZEND_INCLUDE (1<<1)
9cc7044 @andigutmans - Cleanup old IMPORT stuff
andigutmans authored Mar 10, 2000
637 #define ZEND_INCLUDE_ONCE (1<<2)
67b4b3a @zsuraski - require() of a dynamic expression now has the standard require() se…
zsuraski authored Dec 23, 1999
638 #define ZEND_REQUIRE (1<<3)
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
639 #define ZEND_REQUIRE_ONCE (1<<4)
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
640
641 #define ZEND_ISSET (1<<0)
642 #define ZEND_ISEMPTY (1<<1)
643
644 #define ZEND_CT (1<<0)
645 #define ZEND_RT (1<<1)
646
647
58153df @zsuraski - Improve the file handle closing code
zsuraski authored Nov 26, 1999
648 #define ZEND_HANDLE_FILENAME 0
649 #define ZEND_HANDLE_FD 1
650 #define ZEND_HANDLE_FP 2
651 #define ZEND_HANDLE_STDIOSTREAM 3
652 #define ZEND_HANDLE_FSTREAM 4
e52aac9 @wez Implement simple stream support in the ZE scanners.
wez authored Feb 18, 2003
653 #define ZEND_HANDLE_STREAM 5
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
654
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
655 #define ZEND_FETCH_STANDARD 0
cccd244 @zsuraski Get rid of AiCount completely
zsuraski authored Jul 10, 1999
656 #define ZEND_FETCH_ADD_LOCK 1
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
657
993f70c @andigutmans - Don't use magic numbers
andigutmans authored Aug 12, 2004
658 #define ZEND_FE_FETCH_BYREF 1
659 #define ZEND_FE_FETCH_WITH_KEY 2
660
7a5240e - MFH missing bits and pieces of the partial sync with head
Marcus Boerger authored May 11, 2006
661 #define ZEND_FE_RESET_VARIABLE 1
662 #define ZEND_FE_RESET_REFERENCE 2
663
741b816 @zsuraski * Support getThis() for internal functions.
zsuraski authored May 28, 1999
664 #define ZEND_MEMBER_FUNC_CALL 1<<0
665
8d90825 @andigutmans - Allow passing references which are returned from functions and new
andigutmans authored Nov 27, 2000
666 #define ZEND_ARG_SEND_BY_REF (1<<0)
667 #define ZEND_ARG_COMPILE_TIME_BOUND (1<<1)
21e071b Fixed bug #33257 (array_splice() inconsistent when passed function in…
Dmitry Stogov authored Jun 22, 2005
668 #define ZEND_ARG_SEND_FUNCTION (1<<2)
6ec1acb @zsuraski Phase 3:
zsuraski authored Jul 9, 1999
669
ebd4ab4 Fixed bug #25359 (array_multisort() doesn't work in a function if arr…
Dmitry Stogov authored Aug 10, 2005
670 #define ZEND_SEND_BY_VAL 0
671 #define ZEND_SEND_BY_REF 1
672 #define ZEND_SEND_PREFER_REF 2
673
c3272ab Fixed bug #38808 ("maybe ref" issue for current() and others)
Dmitry Stogov authored Sep 26, 2006
674 #define ARG_SEND_TYPE(zf, arg_num) \
675 ((zf) ? \
676 ((((zend_function*)(zf))->common.arg_info && \
677 arg_num<=((zend_function*)(zf))->common.num_args) ? \
678 ((zend_function *)(zf))->common.arg_info[arg_num-1].pass_by_reference : \
679 ((zend_function *)(zf))->common.pass_rest_by_reference) : \
680 ZEND_SEND_BY_VAL)
681
682 #define ARG_MUST_BE_SENT_BY_REF(zf, arg_num) \
683 (ARG_SEND_TYPE(zf, arg_num) == ZEND_SEND_BY_REF)
684
685 #define ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num) \
686 (ARG_SEND_TYPE(zf, arg_num) & (ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF))
687
688 #define ARG_MAY_BE_SENT_BY_REF(zf, arg_num) \
689 (ARG_SEND_TYPE(zf, arg_num) == ZEND_SEND_PREFER_REF)
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
690
ced9cee @zsuraski - Implement return by reference:
zsuraski authored Dec 15, 1999
691 #define ZEND_RETURN_VAL 0
692 #define ZEND_RETURN_REF 1
693
3a42bab @zsuraski Fix behavior of return-by-reference functions. Remove erroneous warni…
zsuraski authored Dec 14, 2003
694
695 #define ZEND_RETURNS_FUNCTION 1<<0
696
ad115d2 @zsuraski Fix require()
zsuraski authored Jan 29, 2000
697 END_EXTERN_C()
698
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
699 #define ZEND_CLONE_FUNC_NAME "__clone"
700 #define ZEND_CONSTRUCTOR_FUNC_NAME "__construct"
701 #define ZEND_DESTRUCTOR_FUNC_NAME "__destruct"
702 #define ZEND_GET_FUNC_NAME "__get"
703 #define ZEND_SET_FUNC_NAME "__set"
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
704 #define ZEND_UNSET_FUNC_NAME "__unset"
705 #define ZEND_ISSET_FUNC_NAME "__isset"
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
706 #define ZEND_CALL_FUNC_NAME "__call"
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
707 #define ZEND_TOSTRING_FUNC_NAME "__tostring"
5f0433d MFB: Enforce protocol on magic methods/functions
Marcus Boerger authored Aug 2, 2004
708 #define ZEND_AUTOLOAD_FUNC_NAME "__autoload"
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
709
a617217 Replace macros which begin with an underscore through an appropiately
Sascha Schumann authored Jul 3, 2000
710 #endif /* ZEND_COMPILE_H */
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
711
712 /*
713 * Local variables:
714 * tab-width: 4
715 * c-basic-offset: 4
716 * indent-tabs-mode: t
717 * End:
718 */
Something went wrong with that request. Please try again.