Skip to content
Newer
Older
100644 894 lines (691 sloc) 33.2 KB
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
1 /*
2 +----------------------------------------------------------------------+
3 | Zend Engine |
4 +----------------------------------------------------------------------+
a666285 @laruence Happy New Year
laruence authored Jan 1, 2013
5 | Copyright (c) 1998-2013 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
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
37 #define SET_UNUSED(op) op ## _type = IS_UNUSED
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
38
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
39 #define INC_BPC(op_array) if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) { (CG(context).backpatch_count++); }
40 #define DEC_BPC(op_array) if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) { (CG(context).backpatch_count--); }
0291ad5 Fixed bug #40236 (php -a function allocation eats memory)
Dmitry Stogov authored Feb 15, 2007
41 #define HANDLE_INTERACTIVE() if (CG(active_op_array)->fn_flags & ZEND_ACC_INTERACTIVE) { execute_new_code(TSRMLS_C); }
80d432c @felipensp - Avoid zend_do_ticks() call for each statement in parsing
felipensp authored Jun 12, 2011
42 #define DO_TICKS() if (Z_LVAL(CG(declarables).ticks)) { zend_do_ticks(TSRMLS_C); }
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
43
58a0ee0 Fixed bug #26456 (Wrong results from Reflection-API getDocComment() w…
Dmitry Stogov authored Jun 7, 2005
44 #define RESET_DOC_COMMENT() \
45 { \
46 if (CG(doc_comment)) { \
47 efree(CG(doc_comment)); \
48 CG(doc_comment) = NULL; \
49 } \
50 CG(doc_comment_len) = 0; \
1885d00 Simplify.
Andrei Zmievski authored Apr 2, 2003
51 }
bdd3b60 Implement a different way to catch documentation comments.
Andrei Zmievski authored Apr 2, 2003
52
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
53 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
54 typedef struct _zend_op zend_op;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
55
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
56 typedef struct _zend_compiler_context {
57 zend_uint opcodes_size;
58 int vars_size;
59 int literals_size;
60 int current_brk_cont;
61 int backpatch_count;
70f83f3 @dstogov . The VM stacks for passing function arguments and syntaticaly nested…
dstogov authored Nov 30, 2012
62 int nested_calls;
63 int used_stack;
6b0b4bf @dstogov An exception thrown in try or catch block is disacarded by return sta…
dstogov authored Dec 13, 2012
64 int in_finally;
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
65 HashTable *labels;
66 } zend_compiler_context;
67
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
68 typedef struct _zend_literal {
c5237d8 Added caches to eliminate repeatable run-time bindings of functions, …
Dmitry Stogov authored May 24, 2010
69 zval constant;
70 zend_ulong hash_value;
71 zend_uint cache_slot;
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
72 } zend_literal;
73
74 #define Z_HASH_P(zv) \
75 (((zend_literal*)(zv))->hash_value)
76
77 typedef union _znode_op {
78 zend_uint constant;
79 zend_uint var;
80 zend_uint num;
81 zend_ulong hash;
82 zend_uint opline_num; /* Needs to be signed */
83 zend_op *jmp_addr;
84 zval *zv;
85 zend_literal *literal;
57e7c7b @laruence tab
laruence authored Aug 18, 2012
86 void *ptr; /* Used for passing pointers from the compile to execution phase, currently used for traits */
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
87 } znode_op;
88
89 typedef struct _znode { /* used only during compilation */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
90 int op_type;
91 union {
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
92 znode_op op;
93 zval constant; /* replaced by literal/zv */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
94 zend_op_array *op_array;
95 } u;
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
96 zend_uint EA; /* extended attributes */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
97 } znode;
98
536d4d8 @andigutmans - Improve opcode dispatching
andigutmans authored Oct 19, 2002
99 typedef struct _zend_execute_data zend_execute_data;
100
edb7c7d @andigutmans - Stop using garbage. Please let me know if you find any bugs resulting
andigutmans authored Aug 19, 2004
101 #define ZEND_OPCODE_HANDLER_ARGS zend_execute_data *execute_data TSRMLS_DC
102 #define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU execute_data TSRMLS_CC
536d4d8 @andigutmans - Improve opcode dispatching
andigutmans authored Oct 19, 2002
103
76a9a42 - Removed direct executor recursion.
Dmitry Stogov authored Jun 11, 2008
104 typedef int (*user_opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS);
105 typedef int (ZEND_FASTCALL *opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS);
536d4d8 @andigutmans - Improve opcode dispatching
andigutmans authored Oct 19, 2002
106
f82ed13 @andigutmans - Commit new VM architecture. This one allows people (aka Derick) to
andigutmans authored Sep 23, 2004
107 extern ZEND_API opcode_handler_t *zend_opcode_handlers;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
108
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
109 struct _zend_op {
6f9bfe5 @andigutmans - Shift around zend_op members
andigutmans authored Nov 5, 2002
110 opcode_handler_t handler;
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
111 znode_op op1;
112 znode_op op2;
113 znode_op result;
39a7f4c @zsuraski This patch is a go. Not fully optimized yet, but working properly.
zsuraski authored Apr 12, 1999
114 ulong extended_value;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
115 uint lineno;
6f9bfe5 @andigutmans - Shift around zend_op members
andigutmans authored Nov 5, 2002
116 zend_uchar opcode;
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
117 zend_uchar op1_type;
118 zend_uchar op2_type;
119 zend_uchar result_type;
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
120 };
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
121
122
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
123 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
124 int start;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
125 int cont;
126 int brk;
127 int parent;
128 } zend_brk_cont_element;
129
f66f55e @felipensp MFH: Implemented "jump label" operator (limited "goto")
felipensp authored Mar 28, 2008
130 typedef struct _zend_label {
131 int brk_cont;
132 zend_uint opline_num;
133 } zend_label;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
134
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
135 typedef struct _zend_try_catch_element {
136 zend_uint try_op;
137 zend_uint catch_op; /* ketchup! */
f2a8912 @laruence Refactor examing of jumping out of finally block
laruence authored Aug 18, 2012
138 zend_uint finally_op;
139 zend_uint finally_end;
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
140 } zend_try_catch_element;
141
dcccfc2 @felipensp - Fix broken code in 64bit
felipensp authored Jun 20, 2011
142 #if SIZEOF_LONG == 8
143 #define THIS_HASHVAL 210728972157UL
144 #else
d6f5f37 @felipensp - Minor optimization (avoid to re-hash already computed var name hash)
felipensp authored Jun 19, 2011
145 #define THIS_HASHVAL 275574653UL
dcccfc2 @felipensp - Fix broken code in 64bit
felipensp authored Jun 20, 2011
146 #endif
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
147
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
148 /* method flags (types) */
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
149 #define ZEND_ACC_STATIC 0x01
150 #define ZEND_ACC_ABSTRACT 0x02
151 #define ZEND_ACC_FINAL 0x04
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
152 #define ZEND_ACC_IMPLEMENTED_ABSTRACT 0x08
6020ffd Simplify detection of methods that must be called dynamic (with object)
Marcus Boerger authored Jan 23, 2004
153
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
154 /* class flags (types) */
155 /* 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). */
156 /* ZEND_ACC_EXPLICIT_ABSTRACT_CLASS denotes that a class was explicitly defined as abstract by using the keyword. */
157 #define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS 0x10
158 #define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS 0x20
159 #define ZEND_ACC_FINAL_CLASS 0x40
160 #define ZEND_ACC_INTERFACE 0x80
cd6415f Implemented Traits for PHP as proposed in the RFC [TRAITS]
Stefan Marr authored Apr 22, 2010
161 #define ZEND_ACC_TRAIT 0x120
e8214a3 @andigutmans - Commit Marcus' cleanup of abstract and static inheritance and improve
andigutmans authored Nov 23, 2002
162
0291ad5 Fixed bug #40236 (php -a function allocation eats memory)
Dmitry Stogov authored Feb 15, 2007
163 /* op_array flags */
164 #define ZEND_ACC_INTERACTIVE 0x10
165
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
166 /* method flags (visibility) */
32b100e @zsuraski - Allow variables to have both 'static' modifier and an access level.
zsuraski authored Dec 9, 2002
167 /* 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
168 #define ZEND_ACC_PUBLIC 0x100
169 #define ZEND_ACC_PROTECTED 0x200
170 #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
171 #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
172
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
173 #define ZEND_ACC_CHANGED 0x800
174 #define ZEND_ACC_IMPLICIT_PUBLIC 0x1000
77208ec @zsuraski Fix incorrect linkage of access-levels, when using private methods
zsuraski authored Jan 2, 2003
175
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
176 /* method flags (special method detection) */
fbda310 - Flag ctor/dtor methods
Marcus Boerger authored Aug 23, 2003
177 #define ZEND_ACC_CTOR 0x2000
7c2e02d Disallow static declaration of clone
Marcus Boerger authored Jan 23, 2004
178 #define ZEND_ACC_DTOR 0x4000
179 #define ZEND_ACC_CLONE 0x8000
1c2512d - Add fn_flag ZEND_ACC_ALIAS
Marcus Boerger authored Aug 24, 2003
180
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
181 /* method flag (bc only), any method that has this flag can be used statically and non statically. */
182 #define ZEND_ACC_ALLOW_STATIC 0x10000
183
2cb5215 @smalyshev MF50: fix #29689 and more private property problems
smalyshev authored Jun 9, 2005
184 /* shadow of parent's private method/property */
185 #define ZEND_ACC_SHADOW 0x20000
186
941b065 - MFH: Function deprecation flag
Marcus Boerger authored Feb 25, 2006
187 /* deprecation flag */
188 #define ZEND_ACC_DEPRECATED 0x40000
189
0f2247a Fixed bug #44414 (Incomplete reporting about abstract methods)
Dmitry Stogov authored Mar 12, 2008
190 /* class implement interface(s) flag */
191 #define ZEND_ACC_IMPLEMENT_INTERFACES 0x80000
cd6415f Implemented Traits for PHP as proposed in the RFC [TRAITS]
Stefan Marr authored Apr 22, 2010
192 #define ZEND_ACC_IMPLEMENT_TRAITS 0x400000
0f2247a Fixed bug #44414 (Incomplete reporting about abstract methods)
Dmitry Stogov authored Mar 12, 2008
193
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
194 /* class constants updated */
195 #define ZEND_ACC_CONSTANTS_UPDATED 0x100000
196
1a1178a eliminated unnecessary iterations during request startup/shutdown
Dmitry Stogov authored Jul 6, 2010
197 /* user class has methods with static variables */
198 #define ZEND_HAS_STATIC_IN_METHODS 0x800000
199
200
d5ef2f4 Added support for lambda functions and closures
Dmitry Stogov authored Jul 14, 2008
201 #define ZEND_ACC_CLOSURE 0x100000
252f623 @nikic Add flag for generator functions
nikic authored May 19, 2012
202 #define ZEND_ACC_GENERATOR 0x800000
d5ef2f4 Added support for lambda functions and closures
Dmitry Stogov authored Jul 14, 2008
203
af05ce0 Fixed is_callable/call_user_func mess that had done different things …
Dmitry Stogov authored Jul 26, 2008
204 /* function flag for internal user call handlers __call, __callstatic */
205 #define ZEND_ACC_CALL_VIA_HANDLER 0x200000
0f2247a Fixed bug #44414 (Incomplete reporting about abstract methods)
Dmitry Stogov authored Mar 12, 2008
206
cacf363 Fixed bug #60104 (Segmentation Fault in pdo_sqlite when using sqliteC…
Dmitry Stogov authored Nov 8, 2011
207 /* disable inline caching */
208 #define ZEND_ACC_NEVER_CACHE 0x400000
209
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
210 #define ZEND_ACC_PASS_REST_BY_REFERENCE 0x1000000
211 #define ZEND_ACC_PASS_REST_PREFER_REF 0x2000000
212
213 #define ZEND_ACC_RETURN_REFERENCE 0x4000000
214 #define ZEND_ACC_DONE_PASS_TWO 0x8000000
215
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
216 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
217
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
218
219 typedef struct _zend_property_info {
220 zend_uint flags;
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
221 const char *name;
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
222 int name_length;
223 ulong h;
c5237d8 Added caches to eliminate repeatable run-time bindings of functions, …
Dmitry Stogov authored May 24, 2010
224 int offset;
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
225 const char *doc_comment;
67a226d - Add ReflectionProperty::getDocComment()
Marcus Boerger authored Apr 19, 2005
226 int doc_comment_len;
493f39d - MFH: Fix bug #37212 (Access to protected property of common base cl…
Marcus Boerger authored May 27, 2006
227 zend_class_entry *ce;
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
228 } zend_property_info;
229
230
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
231 typedef struct _zend_arg_info {
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
232 const char *name;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
233 zend_uint name_len;
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
234 const char *class_name;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
235 zend_uint class_name_len;
a09b713 Used more sutable type. Reduced memory usage.
Dmitry Stogov authored Jul 1, 2010
236 zend_uchar type_hint;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
237 zend_bool allow_null;
238 zend_bool pass_by_reference;
239 } zend_arg_info;
240
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
241 /* the following structure repeats the layout of zend_arg_info,
242 * but its fields have different meaning. It's used as the first element of
243 * arg_info array to define properties of internal functions.
244 */
245 typedef struct _zend_internal_function_info {
246 const char *_name;
247 zend_uint _name_len;
248 const char *_class_name;
249 zend_uint required_num_args;
250 zend_uchar _type_hint;
251 zend_bool return_reference;
252 zend_bool pass_rest_by_reference;
253 } zend_internal_function_info;
254
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
255 typedef struct _zend_compiled_variable {
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
256 const char *name;
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
257 int name_len;
258 ulong hash_value;
259 } zend_compiled_variable;
260
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
261 struct _zend_op_array {
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
262 /* Common elements */
263 zend_uchar type;
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
264 const char *function_name;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
265 zend_class_entry *scope;
266 zend_uint fn_flags;
267 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
268 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
269 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
270 zend_arg_info *arg_info;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
271 /* END of common elements */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
272
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
273 zend_uint *refcount;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
274
275 zend_op *opcodes;
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
276 zend_uint last;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
277
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
278 zend_compiled_variable *vars;
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
279 int last_var;
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
280
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
281 zend_uint T;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
282
70f83f3 @dstogov . The VM stacks for passing function arguments and syntaticaly nested…
dstogov authored Nov 30, 2012
283 zend_uint nested_calls;
284 zend_uint used_stack;
285
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
286 zend_brk_cont_element *brk_cont_array;
f8f26de @felipensp Fix for segfault on 64bit platform
felipensp authored Mar 29, 2008
287 int last_brk_cont;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
288
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
289 zend_try_catch_element *try_catch_array;
290 int last_try_catch;
60a2979 @laruence Fixed bug that jmp in try block jmp over finally block
laruence authored Aug 22, 2012
291 zend_bool has_finally_block;
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
292
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
293 /* static variables support */
294 HashTable *static_variables;
295
5521912 Use IS_CV for dirrent access to $this variable
Dmitry Stogov authored May 7, 2008
296 zend_uint this_var;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
297
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
298 const char *filename;
5657b83 Multi-purpose patch:
Andrei Zmievski authored Mar 31, 2003
299 zend_uint line_start;
300 zend_uint line_end;
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
301 const char *doc_comment;
5657b83 Multi-purpose patch:
Andrei Zmievski authored Mar 31, 2003
302 zend_uint doc_comment_len;
8c885b8 Implemented concept of "delayed early binding" that allows opcode cac…
Dmitry Stogov authored Mar 18, 2008
303 zend_uint early_binding; /* the linked list of delayed declarations */
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
304
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
305 zend_literal *literals;
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
306 int last_literal;
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
307
c5237d8 Added caches to eliminate repeatable run-time bindings of functions, …
Dmitry Stogov authored May 24, 2010
308 void **run_time_cache;
309 int last_cache_slot;
310
b5f5e9a @andigutmans - Optimize the execute stack a bit.
andigutmans authored Aug 15, 1999
311 void *reserved[ZEND_MAX_RESERVED_RESOURCES];
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
312 };
313
314
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
315 #define ZEND_RETURN_VALUE 0
316 #define ZEND_RETURN_REFERENCE 1
317
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
318 typedef struct _zend_internal_function {
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
319 /* Common elements */
320 zend_uchar type;
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
321 const char * function_name;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
322 zend_class_entry *scope;
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
323 zend_uint fn_flags;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
324 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
325 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
326 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
327 zend_arg_info *arg_info;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
328 /* END of common elements */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
329
330 void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
331 struct _zend_module_entry *module;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
332 } zend_internal_function;
333
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
334 #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
335
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
336 typedef union _zend_function {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
337 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
338
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
339 struct {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
340 zend_uchar type; /* never used */
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
341 const char *function_name;
d1eea3d @andigutmans - Fix bug in nested try/catch's
andigutmans authored Mar 1, 2002
342 zend_class_entry *scope;
01e853c @andigutmans - My personal cleanups
andigutmans authored Nov 23, 2002
343 zend_uint fn_flags;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
344 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
345 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
346 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
347 zend_arg_info *arg_info;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
348 } common;
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
349
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
350 zend_op_array op_array;
351 zend_internal_function internal_function;
352 } zend_function;
353
354
9cb2cf1 @zsuraski Optimize allocations into uninitialized_zval assignments
zsuraski authored May 20, 1999
355 typedef struct _zend_function_state {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
356 zend_function *function;
0b68251 Changed EG(argument_stack) implementation.
Dmitry Stogov authored Jan 24, 2008
357 void **arguments;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
358 } zend_function_state;
359
360
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
361 typedef struct _zend_switch_entry {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
362 znode cond;
363 int default_case;
364 int control_var;
365 } zend_switch_entry;
366
367
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
368 typedef struct _list_llist_element {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
369 znode var;
370 zend_llist dimensions;
371 znode value;
372 } list_llist_element;
373
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
374 union _temp_variable;
375
70f83f3 @dstogov . The VM stacks for passing function arguments and syntaticaly nested…
dstogov authored Nov 30, 2012
376 typedef struct _call_slot {
377 zend_function *fbc;
378 zval *object;
379 zend_class_entry *called_scope;
380 zend_bool is_ctor_call;
381 zend_bool is_ctor_result_used;
382 } call_slot;
383
1327480 @andigutmans - Fix compile warning.
andigutmans authored Oct 19, 2002
384 struct _zend_execute_data {
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
385 struct _zend_op *opline;
386 zend_function_state function_state;
41e3f4f @andigutmans - Fix problem with debug_backtrace() reported by Stig. We weren't rep…
andigutmans authored Jul 26, 2002
387 zend_op_array *op_array;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
388 zval *object;
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
389 HashTable *symbol_table;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
390 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
391 zval *old_error_reporting;
76a9a42 - Removed direct executor recursion.
Dmitry Stogov authored Jun 11, 2008
392 zend_bool nested;
393 zval **original_return_value;
394 zend_class_entry *current_scope;
395 zend_class_entry *current_called_scope;
396 zval *current_this;
eb4825b @dstogov Improved "finally" im[plementation
dstogov authored Nov 22, 2012
397 struct _zend_op *fast_ret; /* used by FAST_CALL/FAST_RET (finally keyword) */
70f83f3 @dstogov . The VM stacks for passing function arguments and syntaticaly nested…
dstogov authored Nov 30, 2012
398 call_slot *call_slots;
399 call_slot *call;
1327480 @andigutmans - Fix compile warning.
andigutmans authored Oct 19, 2002
400 };
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
401
b66c89c @andigutmans - More debug backtrace work. It still doesn't work very well...
andigutmans authored May 7, 2002
402 #define EX(element) execute_data.element
403
7651d64 @dstogov Optimized access to temporary and compiled VM variables
dstogov authored Dec 4, 2012
404 #define EX_TMP_VAR(ex, n) ((temp_variable*)(((char*)(ex)) + ((int)(n))))
405 #define EX_TMP_VAR_NUM(ex, n) (EX_TMP_VAR(ex, 0) - (1 + (n)))
406
407 #define EX_CV_NUM(ex, n) (((zval***)(((char*)(ex))+ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data))))+(n))
408
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
409
410 #define IS_CONST (1<<0)
411 #define IS_TMP_VAR (1<<1)
412 #define IS_VAR (1<<2)
413 #define IS_UNUSED (1<<3) /* Unused variable */
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
414 #define IS_CV (1<<4) /* Compiled variable */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
415
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
416 #define EXT_TYPE_UNUSED (1<<5)
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
417
df74f1d Add optional support for C0x inline semantics.
Sascha Schumann authored Jun 13, 2000
418 #include "zend_globals.h"
419
ad115d2 @zsuraski Fix require()
zsuraski authored Jan 29, 2000
420 BEGIN_EXTERN_C()
421
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
422 void init_compiler(TSRMLS_D);
423 void shutdown_compiler(TSRMLS_D);
424 void zend_init_compiler_data_structures(TSRMLS_D);
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
425 void zend_init_compiler_context(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
426
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
427 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
428 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
429
1fd542f @sebastianbergmann Export lex_scan(). Both the PHPDoc and tokenizer extension need this.…
sebastianbergmann authored Feb 10, 2002
430 ZEND_API int lex_scan(zval *zendlval TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
431 void startup_scanner(TSRMLS_D);
432 void shutdown_scanner(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
433
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
434 ZEND_API char *zend_set_compiled_filename(const char *new_compiled_filename TSRMLS_DC);
4187439 @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 30, 2001
435 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
436 ZEND_API char *zend_get_compiled_filename(TSRMLS_D);
437 ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
a28497d - Fix __halt_compiler() weirdness with zend-mulibyte enabled
Moriyoshi Koizumi authored Jul 28, 2008
438 ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
439
1b4134c @smalyshev Namespace resolution streamlining patch
smalyshev authored Nov 11, 2008
440 void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC);
70cacfd @felipensp - Changed zend_resolve_class_name() prototype
felipensp authored Jul 9, 2011
441 void zend_resolve_class_name(znode *class_name, ulong fetch_type, int check_ns_name TSRMLS_DC);
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
442 ZEND_API const char* zend_get_compiled_variable_name(const zend_op_array *op_array, zend_uint var, int* name_len);
8838c0f @andigutmans - Two new API calls for Derick (retreive CV name and value) by Dmitry
andigutmans authored Jan 22, 2005
443
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
444 #ifdef ZTS
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
445 const char *zend_get_zendtext(TSRMLS_D);
446 int zend_get_zendleng(TSRMLS_D);
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
447 #endif
448
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
449
450 /* parser-driven code generators */
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
451 void zend_do_binary_op(zend_uchar op, znode *result, const znode *op1, const znode *op2 TSRMLS_DC);
452 void zend_do_unary_op(zend_uchar op, znode *result, const znode *op1 TSRMLS_DC);
453 void zend_do_binary_assign_op(zend_uchar op, znode *result, const znode *op1, const znode *op2 TSRMLS_DC);
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
454 void zend_do_assign(znode *result, znode *variable, znode *value TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
455 void zend_do_assign_ref(znode *result, const znode *lvar, const znode *rvar TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
456 void fetch_simple_variable(znode *result, znode *varname, int bp TSRMLS_DC);
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
457 void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar op TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
458 void zend_do_indirect_references(znode *result, const znode *num_references, znode *variable TSRMLS_DC);
459 void zend_do_fetch_static_variable(znode *varname, const znode *static_assignment, int fetch_type TSRMLS_DC);
460 void zend_do_fetch_global_variable(znode *varname, const znode *static_assignment, int fetch_type TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
461
462 void fetch_array_begin(znode *result, znode *varname, znode *first_dim TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
463 void fetch_array_dim(znode *result, const znode *parent, const znode *dim TSRMLS_DC);
464 void fetch_string_offset(znode *result, const znode *parent, const znode *offset TSRMLS_DC);
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
465 void zend_do_fetch_static_member(znode *result, znode *class_znode TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
466 void zend_do_print(znode *result, const znode *arg TSRMLS_DC);
467 void zend_do_echo(const znode *arg TSRMLS_DC);
22a5aea MFH: - Updated unary_op_type typedef with TSRMLS_DC
Matt Wilmas authored Aug 29, 2008
468 typedef int (*unary_op_type)(zval *, zval * TSRMLS_DC);
469 typedef int (*binary_op_type)(zval *, zval *, zval * TSRMLS_DC);
8802964 * fix some casts
Sascha Schumann authored May 30, 1999
470 ZEND_API unary_op_type get_unary_op(int opcode);
22a5aea MFH: - Updated unary_op_type typedef with TSRMLS_DC
Matt Wilmas authored Aug 29, 2008
471 ZEND_API binary_op_type get_binary_op(int opcode);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
472
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
473 void zend_do_while_cond(const znode *expr, znode *close_bracket_token TSRMLS_DC);
474 void zend_do_while_end(const znode *while_token, const znode *close_bracket_token TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
475 void zend_do_do_while_begin(TSRMLS_D);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
476 void zend_do_do_while_end(const znode *do_token, const znode *expr_open_bracket, const znode *expr TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
477
478
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
479 void zend_do_if_cond(const znode *cond, znode *closing_bracket_token TSRMLS_DC);
480 void zend_do_if_after_statement(const znode *closing_bracket_token, unsigned char initialize TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
481 void zend_do_if_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
482
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
483 void zend_do_for_cond(const znode *expr, znode *second_semicolon_token TSRMLS_DC);
484 void zend_do_for_before_statement(const znode *cond_start, const znode *second_semicolon_token TSRMLS_DC);
485 void zend_do_for_end(const znode *second_semicolon_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
486
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
487 void zend_do_pre_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC);
488 void zend_do_post_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
489
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
490 void zend_do_begin_variable_parse(TSRMLS_D);
5521912 Use IS_CV for dirrent access to $this variable
Dmitry Stogov authored May 7, 2008
491 void zend_do_end_variable_parse(znode *variable, int type, int arg_offset TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
492
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
493 void zend_check_writable_variable(const znode *variable);
ac7ed46 @andigutmans - Start adding parsed variable checks.
andigutmans authored Dec 16, 2001
494
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
495 void zend_do_free(znode *op1 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
496
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
497 void zend_do_add_string(znode *result, const znode *op1, znode *op2 TSRMLS_DC);
498 void zend_do_add_variable(znode *result, const znode *op1, const znode *op2 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
499
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
500 int zend_do_verify_access_types(const znode *current_access_type, const znode *new_modifier);
26dd849 @zsuraski Add support for interfaces
zsuraski authored Mar 5, 2003
501 void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference, znode *fn_flags_znode TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
502 void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC);
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
503 void zend_do_receive_arg(zend_uchar op, znode *varname, const znode *offset, const znode *initialization, znode *class_type, zend_bool pass_by_reference TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
504 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
505 void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
506 void zend_do_clone(znode *result, const znode *expr TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
507 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
508 void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC);
7126de4 - Next step in namespaces, using / as namespace separator.
Marcus Boerger authored Nov 4, 2008
509 void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_class_member TSRMLS_DC);
9f230a0 Added support for "namespace::" prefix that is resolved to current na…
Dmitry Stogov authored Nov 20, 2007
510 int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
511 void zend_do_end_function_call(znode *function_name, znode *result, const znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
512 void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC);
8074863 @nikic Require parenthesis around yield expressions
nikic authored Jul 21, 2012
513 void zend_do_yield(znode *result, znode *value, const znode *key, zend_bool is_variable TSRMLS_DC);
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
514 void zend_do_handle_exception(TSRMLS_D);
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
515
c93a4f1 @smalyshev restore $this support for closures to its former glory
smalyshev authored Apr 19, 2010
516 void zend_do_begin_lambda_function_declaration(znode *result, znode *function_token, int return_reference, int is_static TSRMLS_DC);
d5ef2f4 Added support for lambda functions and closures
Dmitry Stogov authored Jul 14, 2008
517 void zend_do_fetch_lexical_variable(znode *varname, zend_bool is_ref TSRMLS_DC);
518
6197021 @andigutmans - Make it compile in thread-safe mode.
andigutmans authored Aug 30, 2001
519 void zend_do_try(znode *try_token TSRMLS_DC);
dd5c478 Added concept of interned strings. All strings constants known at com…
Dmitry Stogov authored Apr 20, 2010
520 void zend_do_begin_catch(znode *try_token, znode *catch_class, znode *catch_var, znode *first_catch TSRMLS_DC);
cec1786 @laruence Fixed bug #62938 (zend_do_bind_catch() used without declaration)
laruence authored Aug 27, 2012
521 void zend_do_bind_catch(znode *try_token, znode *catch_token TSRMLS_DC);
80d5ae3 @laruence Implemented 'finally' keywords for php
laruence authored Aug 13, 2012
522 void zend_do_end_catch(znode *catch_token TSRMLS_DC);
c64f4e7 @laruence Add functions declarations, use tabs
laruence authored Aug 14, 2012
523 void zend_do_finally(znode *finally_token TSRMLS_DC);
524 void zend_do_end_finally(znode *try_token, znode* catch_token, znode *finally_token TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
525 void zend_do_throw(const znode *expr TSRMLS_DC);
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
526
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
527 ZEND_API int do_bind_function(const zend_op_array *op_array, zend_op *opline, HashTable *function_table, zend_bool compile_time);
528 ZEND_API zend_class_entry *do_bind_class(const zend_op_array *op_array, const zend_op *opline, HashTable *class_table, zend_bool compile_time TSRMLS_DC);
529 ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array, const zend_op *opline, HashTable *class_table, zend_class_entry *parent_ce, zend_bool compile_time TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
530 ZEND_API void zend_do_inherit_interfaces(zend_class_entry *ce, const zend_class_entry *iface TSRMLS_DC);
3c62b3b Expand Interface C API.
Marcus Boerger authored Oct 22, 2003
531 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
532 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
533
cd6415f Implemented Traits for PHP as proposed in the RFC [TRAITS]
Stefan Marr authored Apr 22, 2010
534 /* Trait related functions */
3f8c729 @dstogov Traits refactoring
dstogov authored Dec 25, 2012
535 void zend_do_use_trait(znode *trait_znode TSRMLS_DC);
536 void zend_prepare_reference(znode *result, znode *class_name, znode *method_name TSRMLS_DC);
537 void zend_add_trait_precedence(znode *method_reference, znode *trait_list TSRMLS_DC);
538 void zend_add_trait_alias(znode *method_reference, znode *modifiers, znode *alias TSRMLS_DC);
cd6415f Implemented Traits for PHP as proposed in the RFC [TRAITS]
Stefan Marr authored Apr 22, 2010
539
540 ZEND_API void zend_do_implement_trait(zend_class_entry *ce, zend_class_entry *trait TSRMLS_DC);
541 ZEND_API void zend_do_bind_traits(zend_class_entry *ce TSRMLS_DC);
542
4918b67 - Make zend_do_inheritance ZEND_API
Marcus Boerger authored May 28, 2005
543 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
544 void zend_do_early_binding(TSRMLS_D);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
545 ZEND_API void zend_do_delayed_early_binding(const zend_op_array *op_array TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
546
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
547 void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
548
549
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
550 void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
551 void zend_do_boolean_or_end(znode *result, const znode *expr1, const znode *expr2, znode *op_token TSRMLS_DC);
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
552 void zend_do_boolean_and_begin(znode *expr1, znode *op_token TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
553 void zend_do_boolean_and_end(znode *result, const znode *expr1, const znode *expr2, const znode *op_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
554
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
555 void zend_do_brk_cont(zend_uchar op, const znode *expr TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
556
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
557 void zend_do_switch_cond(const znode *cond TSRMLS_DC);
558 void zend_do_switch_end(const znode *case_list TSRMLS_DC);
559 void zend_do_case_before_statement(const znode *case_list, znode *case_token, const znode *case_expr TSRMLS_DC);
560 void zend_do_case_after_statement(znode *result, const znode *case_token TSRMLS_DC);
561 void zend_do_default_before_statement(const znode *case_list, znode *default_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
562
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
563 void zend_do_begin_class_declaration(const znode *class_token, znode *class_name, const znode *parent_class_name TSRMLS_DC);
564 void zend_do_end_class_declaration(const znode *class_token, const znode *parent_token TSRMLS_DC);
565 void zend_do_declare_property(const znode *var_name, const znode *value, zend_uint access_type TSRMLS_DC);
566 void zend_do_declare_class_constant(znode *var_name, const znode *value TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
567
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
568 void zend_do_fetch_property(znode *result, znode *object, const znode *property TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
569
17c0c49 Addres limitation of __HALT_COMPILER() that allowed only one instance
Ilia Alshanetsky authored Apr 4, 2007
570 void zend_do_halt_compiler_register(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
571
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
572 void zend_do_push_object(const znode *object TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
573 void zend_do_pop_object(znode *object TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
574
575
a332f82 @andigutmans - Support instantiation of nested class. The following script now should
andigutmans authored Nov 4, 2001
576 void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
577 void zend_do_end_new_object(znode *result, const znode *new_token, const znode *argument_list TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
578
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
579 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
580
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
581 void zend_do_shell_exec(znode *result, const znode *cmd TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
582
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
583 void zend_do_init_array(znode *result, const znode *expr, const znode *offset, zend_bool is_ref TSRMLS_DC);
584 void zend_do_add_array_element(znode *result, const znode *expr, const znode *offset, zend_bool is_ref TSRMLS_DC);
585 void zend_do_add_static_array_element(znode *result, znode *offset, const znode *expr);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
586 void zend_do_list_init(TSRMLS_D);
587 void zend_do_list_end(znode *result, znode *expr TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
588 void zend_do_add_list_element(const znode *element TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
589 void zend_do_new_list_begin(TSRMLS_D);
590 void zend_do_new_list_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
591
cd6415f Implemented Traits for PHP as proposed in the RFC [TRAITS]
Stefan Marr authored Apr 22, 2010
592 /* Functions for a null terminated pointer list, used for traits parsing and compilation */
593 void zend_init_list(void *result, void *item TSRMLS_DC);
594 void zend_add_to_list(void *result, void *item TSRMLS_DC);
595
596
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
597 void zend_do_cast(znode *result, const znode *expr, int type TSRMLS_DC);
598 void zend_do_include_or_eval(int type, znode *result, const znode *op1 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
599
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
600 void zend_do_unset(const znode *variable TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
601 void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
602
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
603 void zend_do_instanceof(znode *result, const znode *expr, const 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
604
e470e22 - Fixed bug #35106 (nested foreach fails when array variable has a re…
Dmitry Stogov authored Jan 10, 2007
605 void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, znode *as_token, int variable TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
606 void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token, const znode *as_token, znode *value, znode *key TSRMLS_DC);
607 void zend_do_foreach_end(const znode *foreach_token, const znode *as_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
608
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
609 void zend_do_declare_begin(TSRMLS_D);
610 void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
611 void zend_do_declare_end(const znode *declare_token TSRMLS_DC);
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
612
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
613 void zend_do_exit(znode *result, const znode *message TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
614
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
615 void zend_do_begin_silence(znode *strudel_token TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
616 void zend_do_end_silence(const znode *strudel_token TSRMLS_DC);
45f6b4c @johannes - MFH Improved version of ternary shortcut (Marcus)
johannes authored Nov 21, 2007
617
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
618 void zend_do_jmp_set(const znode *value, znode *jmp_token, znode *colon_token TSRMLS_DC);
619 void zend_do_jmp_set_else(znode *result, const znode *false_value, const znode *jmp_token, const znode *colon_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
620
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
621 void zend_do_begin_qm_op(const znode *cond, znode *qm_token TSRMLS_DC);
622 void zend_do_qm_true(const znode *true_value, znode *qm_token, znode *colon_token TSRMLS_DC);
623 void zend_do_qm_false(znode *result, const znode *false_value, const znode *qm_token, const znode *colon_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
624
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
625 void zend_do_extended_info(TSRMLS_D);
626 void zend_do_extended_fcall_begin(TSRMLS_D);
627 void zend_do_extended_fcall_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
628
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
629 void zend_do_ticks(TSRMLS_D);
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
630
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
631 void zend_do_abstract_method(const znode *function_name, znode *modifiers, const znode *body TSRMLS_DC);
227f783 @andigutmans - Fix build (thanks Marcus)
andigutmans authored Nov 20, 2002
632
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
633 void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC);
634 void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRMLS_DC);
ea45b71 Added support for namespaces with brackets. (Greg)
Dmitry Stogov authored Nov 25, 2008
635 void zend_do_begin_namespace(const znode *name, zend_bool with_brackets TSRMLS_DC);
636 void zend_do_end_namespace(TSRMLS_D);
637 void zend_verify_namespace(TSRMLS_D);
64e8f22 Allowed import of global classes "use ::GlobalClassName;"
Dmitry Stogov authored Dec 13, 2007
638 void zend_do_use(znode *name, znode *new_name, int is_global TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
639 void zend_do_end_compilation(TSRMLS_D);
640
f66f55e @felipensp MFH: Implemented "jump label" operator (limited "goto")
felipensp authored Mar 28, 2008
641 void zend_do_label(znode *label TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
642 void zend_do_goto(const znode *label TSRMLS_DC);
f66f55e @felipensp MFH: Implemented "jump label" operator (limited "goto")
felipensp authored Mar 28, 2008
643 void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2 TSRMLS_DC);
644 void zend_release_labels(TSRMLS_D);
645
727398b @andigutmans Add to the API
andigutmans authored Jun 13, 2000
646 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
647
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
648 #define INITIAL_OP_ARRAY_SIZE 64
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
649 #define INITIAL_INTERACTIVE_OP_ARRAY_SIZE 8192
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
650
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
651
7b0d92d @zsuraski Unify the names of these last 3 files...
zsuraski authored Oct 29, 2000
652 /* helper functions in zend_language_scanner.l */
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
653 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
654 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
655 ZEND_API zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC);
819ea51 @zsuraski MFZE1
zsuraski authored Aug 31, 2001
656 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
657 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
658 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
659 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
660 ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC);
03f88ac @smalyshev Add additional stage to post-session cleanup.
smalyshev authored Jan 29, 2003
661 ZEND_API int zend_cleanup_class_data(zend_class_entry **pce TSRMLS_DC);
1a1178a eliminated unnecessary iterations during request startup/shutdown
Dmitry Stogov authored Jul 6, 2010
662 ZEND_API int zend_cleanup_user_class_data(zend_class_entry **pce TSRMLS_DC);
663 ZEND_API void zend_cleanup_internal_class_data(zend_class_entry *ce TSRMLS_DC);
3ea3bba @felipensp - Fix ZTS build
felipensp authored Jul 6, 2010
664 ZEND_API void zend_cleanup_internal_classes(TSRMLS_D);
03f88ac @smalyshev Add additional stage to post-session cleanup.
smalyshev authored Jan 29, 2003
665 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
666 ZEND_API int zend_cleanup_function_data_full(zend_function *function TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
667
3fc8528 @sebastianbergmann Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_cla…
sebastianbergmann authored Mar 26, 2003
668 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
669 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
670 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
671 void zend_class_add_ref(zend_class_entry **ce);
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
672
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
673 ZEND_API void zend_mangle_property_name(char **dest, int *dest_length, const char *src1, int src1_length, const char *src2, int src2_length, int internal);
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
674 ZEND_API int zend_unmangle_property_name(const char *mangled_property, int mangled_property_len, const char **class_name, const char **prop_name);
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
675
fb5cb59 Fixed Zend Function Destructor to use correct TSRM handle.
Stefan Esser authored Jun 6, 2004
676 #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
677 #define ZEND_CLASS_DTOR (void (*)(void *)) destroy_zend_class
81d901b @zsuraski Step 1 in nuking the garbage collector:
zsuraski authored Jul 9, 1999
678
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
679 zend_op *get_next_op(zend_op_array *op_array TSRMLS_DC);
680 void init_op(zend_op *op TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
681 int get_next_op_number(zend_op_array *op_array);
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
682 int print_class(zend_class_entry *class_entry TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
683 void print_op_array(zend_op_array *op_array, int optimizations);
cb7a21a MFH: Make pass_two visible to extensions with ZEND_API (required for …
Brian Shire authored Jun 5, 2009
684 ZEND_API int pass_two(zend_op_array *op_array TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
685 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
686 void zend_do_first_catch(znode *open_parentheses TSRMLS_DC);
80d5ae3 @laruence Implemented 'finally' keywords for php
laruence authored Aug 13, 2012
687 void zend_initialize_try_catch_element(znode *catch_token TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
688 void zend_do_mark_last_catch(const znode *first_catch, const znode *last_additional_catch TSRMLS_DC);
4187439 @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 30, 2001
689 ZEND_API zend_bool zend_is_compiling(TSRMLS_D);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
690 ZEND_API char *zend_make_compiled_string_description(const char *name TSRMLS_DC);
9c909f4 @sebastianbergmann Sync: Export externally used functions.
sebastianbergmann authored Dec 16, 2003
691 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
692 int zend_get_class_fetch_type(const char *class_name, uint class_name_len);
c17c7a2 @zsuraski Centralize class initialization
zsuraski authored Feb 10, 2003
693
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
694 typedef zend_bool (*zend_auto_global_callback)(const char *name, uint name_len TSRMLS_DC);
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
695 typedef struct _zend_auto_global {
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
696 const char *name;
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
697 uint name_len;
698 zend_auto_global_callback auto_global_callback;
f0c8366 - use interned strings for auto globals
Dmitry Stogov authored Jul 8, 2010
699 zend_bool jit;
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
700 zend_bool armed;
701 } zend_auto_global;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
702
f0c8366 - use interned strings for auto globals
Dmitry Stogov authored Jul 8, 2010
703 ZEND_API int zend_register_auto_global(const char *name, uint name_len, zend_bool jit, zend_auto_global_callback auto_global_callback TSRMLS_DC);
704 ZEND_API void zend_activate_auto_globals(TSRMLS_D);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
705 ZEND_API zend_bool zend_is_auto_global(const char *name, uint name_len TSRMLS_DC);
c5901b6 @felipensp - Added zend_is_auto_global_quick function
felipensp authored Jul 10, 2011
706 ZEND_API zend_bool zend_is_auto_global_quick(const char *name, uint name_len, ulong hashval TSRMLS_DC);
fd597dc @smalyshev [DOC] Add compile-time __DIR__ constant which implements dirname(__FI…
smalyshev authored Feb 12, 2008
707 ZEND_API size_t zend_dirname(char *path, size_t len);
9d11db1 @andigutmans - Merge new $_GET, $_POST etc. patch from Engine 1 tree
andigutmans authored Aug 8, 2001
708
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
709 int zendlex(znode *zendlval TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
710
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
711 int zend_add_literal(zend_op_array *op_array, const zval *zv TSRMLS_DC);
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
712
5ae7fa4 add markers that make this file easy to parse for external sources
Sterling Hughes authored Apr 7, 2003
713 /* BEGIN: OPCODES */
f7f5a5e @smalyshev MEGA-patch: namespaces are R.I.P.
smalyshev authored Jun 2, 2003
714
a904c1d @andigutmans - Improve comments, docs, code...
andigutmans authored Oct 27, 2004
715 #include "zend_vm_opcodes.h"
a4c3b2c @smalyshev Namespace patch. Big changes:
smalyshev authored Feb 16, 2003
716
a904c1d @andigutmans - Improve comments, docs, code...
andigutmans authored Oct 27, 2004
717 #define ZEND_OP_DATA 137
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
718
5ae7fa4 add markers that make this file easy to parse for external sources
Sterling Hughes authored Apr 7, 2003
719 /* END: OPCODES */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
720
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
721 /* class fetches */
722 #define ZEND_FETCH_CLASS_DEFAULT 0
723 #define ZEND_FETCH_CLASS_SELF 1
b3fd2fa @andigutmans - Support parent:: again
andigutmans authored Dec 27, 2001
724 #define ZEND_FETCH_CLASS_PARENT 2
725 #define ZEND_FETCH_CLASS_MAIN 3
a4c3b2c @smalyshev Namespace patch. Big changes:
smalyshev authored Feb 16, 2003
726 #define ZEND_FETCH_CLASS_GLOBAL 4
9d7122f @zsuraski Generalize fetch_class
zsuraski authored Aug 3, 2003
727 #define ZEND_FETCH_CLASS_AUTO 5
12b66c2 Fixed bug #30519 (Interface not existing says Class not found)
Dmitry Stogov authored Jun 24, 2005
728 #define ZEND_FETCH_CLASS_INTERFACE 6
166266d Added support for Late Static Binding. (Dmitry, Etienne Kneuss)
Dmitry Stogov authored Sep 29, 2007
729 #define ZEND_FETCH_CLASS_STATIC 7
cd6415f Implemented Traits for PHP as proposed in the RFC [TRAITS]
Stefan Marr authored Apr 22, 2010
730 #define ZEND_FETCH_CLASS_TRAIT 14
eb0c56a Fixed bug #42820 (defined() on constant with namespace prefixes tries…
Dmitry Stogov authored Oct 3, 2007
731 #define ZEND_FETCH_CLASS_MASK 0x0f
9305339 Changed "instanceof" and "catch" operators, is_a() and is_subclass_of…
Dmitry Stogov authored Sep 9, 2005
732 #define ZEND_FETCH_CLASS_NO_AUTOLOAD 0x80
eb0c56a Fixed bug #42820 (defined() on constant with namespace prefixes tries…
Dmitry Stogov authored Oct 3, 2007
733 #define ZEND_FETCH_CLASS_SILENT 0x0100
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
734
880e7d8 @andigutmans - Framework for knowing what kind of variable we just parsed.
andigutmans authored Dec 16, 2001
735 /* variable parsing type (compile-time) */
03b6af0 @zsuraski Support references in foreach()
zsuraski authored Jul 24, 2003
736 #define ZEND_PARSED_MEMBER (1<<0)
737 #define ZEND_PARSED_METHOD_CALL (1<<1)
738 #define ZEND_PARSED_STATIC_MEMBER (1<<2)
739 #define ZEND_PARSED_FUNCTION_CALL (1<<3)
740 #define ZEND_PARSED_VARIABLE (1<<4)
741 #define ZEND_PARSED_REFERENCE_VARIABLE (1<<5)
44325e6 Fixed bug #45178 (memory corruption on assignment result of "new" by …
Dmitry Stogov authored Jul 24, 2008
742 #define ZEND_PARSED_NEW (1<<6)
35951d4 @laruence Support list in foreach
laruence authored Aug 25, 2012
743 #define ZEND_PARSED_LIST_EXPR (1<<7)
880e7d8 @andigutmans - Framework for knowing what kind of variable we just parsed.
andigutmans authored Dec 16, 2001
744
745
5af7770 @andigutmans - Sync Engine2 CVS with latest Engine CVS
andigutmans authored Aug 7, 2001
746 /* unset types */
747 #define ZEND_UNSET_REG 0
748
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
749 /* var status for backpatching */
06d04d1 @andigutmans - Fix SEND_VAR problem after fetch'ing a variable and not knowing the…
andigutmans authored Sep 29, 1999
750 #define BP_VAR_R 0
751 #define BP_VAR_W 1
752 #define BP_VAR_RW 2
753 #define BP_VAR_IS 3
754 #define BP_VAR_NA 4 /* if not applicable */
755 #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
756 #define BP_VAR_UNSET 6
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
757
758
49c4866 @zsuraski - Improve tracking
zsuraski authored Aug 18, 2003
759 #define ZEND_INTERNAL_FUNCTION 1
760 #define ZEND_USER_FUNCTION 2
761 #define ZEND_OVERLOADED_FUNCTION 3
762 #define ZEND_EVAL_CODE 4
763 #define ZEND_OVERLOADED_FUNCTION_TEMPORARY 5
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
764
62f9eb8 Split ZEND_NAMESPACE into user and internal namespaces. Hope this is
Andrei Zmievski authored Apr 1, 2003
765 #define ZEND_INTERNAL_CLASS 1
766 #define ZEND_USER_CLASS 2
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
767
768 #define ZEND_EVAL (1<<0)
769 #define ZEND_INCLUDE (1<<1)
9cc7044 @andigutmans - Cleanup old IMPORT stuff
andigutmans authored Mar 10, 2000
770 #define ZEND_INCLUDE_ONCE (1<<2)
67b4b3a @zsuraski - require() of a dynamic expression now has the standard require() se…
zsuraski authored Dec 23, 1999
771 #define ZEND_REQUIRE (1<<3)
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
772 #define ZEND_REQUIRE_ONCE (1<<4)
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
773
774 #define ZEND_CT (1<<0)
775 #define ZEND_RT (1<<1)
776
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
777 /* global/local fetches */
778 #define ZEND_FETCH_GLOBAL 0x00000000
779 #define ZEND_FETCH_LOCAL 0x10000000
780 #define ZEND_FETCH_STATIC 0x20000000
781 #define ZEND_FETCH_STATIC_MEMBER 0x30000000
782 #define ZEND_FETCH_GLOBAL_LOCK 0x40000000
783 #define ZEND_FETCH_LEXICAL 0x50000000
784
785 #define ZEND_FETCH_TYPE_MASK 0x70000000
786
787 #define ZEND_FETCH_STANDARD 0x00000000
788 #define ZEND_FETCH_ADD_LOCK 0x08000000
789 #define ZEND_FETCH_MAKE_REF 0x04000000
790
791 #define ZEND_ISSET 0x02000000
792 #define ZEND_ISEMPTY 0x01000000
793 #define ZEND_ISSET_ISEMPTY_MASK (ZEND_ISSET | ZEND_ISEMPTY)
794 #define ZEND_QUICK_SET 0x00800000
795
796 #define ZEND_FETCH_ARG_MASK 0x000fffff
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
797
993f70c @andigutmans - Don't use magic numbers
andigutmans authored Aug 12, 2004
798 #define ZEND_FE_FETCH_BYREF 1
799 #define ZEND_FE_FETCH_WITH_KEY 2
800
94dd837 Changed the structure of op_array.opcodes. The constant values are mo…
Dmitry Stogov authored Apr 20, 2010
801 #define ZEND_FE_RESET_VARIABLE (1<<0)
802 #define ZEND_FE_RESET_REFERENCE (1<<1)
803 #define EXT_TYPE_FREE_ON_RETURN (1<<2)
7a5240e - MFH missing bits and pieces of the partial sync with head
Marcus Boerger authored May 11, 2006
804
741b816 @zsuraski * Support getThis() for internal functions.
zsuraski authored May 28, 1999
805 #define ZEND_MEMBER_FUNC_CALL 1<<0
806
8d90825 @andigutmans - Allow passing references which are returned from functions and new
andigutmans authored Nov 27, 2000
807 #define ZEND_ARG_SEND_BY_REF (1<<0)
808 #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
809 #define ZEND_ARG_SEND_FUNCTION (1<<2)
666bf10 Removed wrong warning message
Dmitry Stogov authored Jan 20, 2009
810 #define ZEND_ARG_SEND_SILENT (1<<3)
6ec1acb @zsuraski Phase 3:
zsuraski authored Jul 9, 1999
811
ebd4ab4 Fixed bug #25359 (array_multisort() doesn't work in a function if arr…
Dmitry Stogov authored Aug 10, 2005
812 #define ZEND_SEND_BY_VAL 0
813 #define ZEND_SEND_BY_REF 1
814 #define ZEND_SEND_PREFER_REF 2
815
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
816 #define CHECK_ARG_SEND_TYPE(zf, arg_num, m1, m2) \
817 ((zf) && \
818 ((((zend_function*)(zf))->common.arg_info && \
819 arg_num <= ((zend_function*)(zf))->common.num_args) ? \
820 (((zend_function *)(zf))->common.arg_info[arg_num-1].pass_by_reference & (m1)) : \
821 (((zend_function *)(zf))->common.fn_flags & (m2))))
c3272ab Fixed bug #38808 ("maybe ref" issue for current() and others)
Dmitry Stogov authored Sep 26, 2006
822
823 #define ARG_MUST_BE_SENT_BY_REF(zf, arg_num) \
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
824 CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_BY_REF, ZEND_ACC_PASS_REST_BY_REFERENCE)
c3272ab Fixed bug #38808 ("maybe ref" issue for current() and others)
Dmitry Stogov authored Sep 26, 2006
825
826 #define ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num) \
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
827 CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF, ZEND_ACC_PASS_REST_BY_REFERENCE|ZEND_ACC_PASS_REST_PREFER_REF)
c3272ab Fixed bug #38808 ("maybe ref" issue for current() and others)
Dmitry Stogov authored Sep 26, 2006
828
829 #define ARG_MAY_BE_SENT_BY_REF(zf, arg_num) \
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
830 CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_PREFER_REF, ZEND_ACC_PASS_REST_PREFER_REF)
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
831
ced9cee @zsuraski - Implement return by reference:
zsuraski authored Dec 15, 1999
832 #define ZEND_RETURN_VAL 0
833 #define ZEND_RETURN_REF 1
834
3a42bab @zsuraski Fix behavior of return-by-reference functions. Remove erroneous warni…
zsuraski authored Dec 14, 2003
835
836 #define ZEND_RETURNS_FUNCTION 1<<0
44325e6 Fixed bug #45178 (memory corruption on assignment result of "new" by …
Dmitry Stogov authored Jul 24, 2008
837 #define ZEND_RETURNS_NEW 1<<1
3a42bab @zsuraski Fix behavior of return-by-reference functions. Remove erroneous warni…
zsuraski authored Dec 14, 2003
838
eb4825b @dstogov Improved "finally" im[plementation
dstogov authored Nov 22, 2012
839 #define ZEND_FAST_RET_TO_CATCH 1
840 #define ZEND_FAST_RET_TO_FINALLY 2
841
ad115d2 @zsuraski Fix require()
zsuraski authored Jan 29, 2000
842 END_EXTERN_C()
843
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
844 #define ZEND_CLONE_FUNC_NAME "__clone"
845 #define ZEND_CONSTRUCTOR_FUNC_NAME "__construct"
846 #define ZEND_DESTRUCTOR_FUNC_NAME "__destruct"
847 #define ZEND_GET_FUNC_NAME "__get"
848 #define ZEND_SET_FUNC_NAME "__set"
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
849 #define ZEND_UNSET_FUNC_NAME "__unset"
850 #define ZEND_ISSET_FUNC_NAME "__isset"
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
851 #define ZEND_CALL_FUNC_NAME "__call"
b20ed0d Added support for __callstatic() magic method. (Sara)
Dmitry Stogov authored Sep 29, 2007
852 #define ZEND_CALLSTATIC_FUNC_NAME "__callstatic"
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
853 #define ZEND_TOSTRING_FUNC_NAME "__tostring"
5f0433d MFB: Enforce protocol on magic methods/functions
Marcus Boerger authored Aug 2, 2004
854 #define ZEND_AUTOLOAD_FUNC_NAME "__autoload"
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
855
8c885b8 Implemented concept of "delayed early binding" that allows opcode cac…
Dmitry Stogov authored Mar 18, 2008
856 /* The following constants may be combined in CG(compiler_options)
857 * to change the default compiler behavior */
858
859 /* generate extended debug information */
860 #define ZEND_COMPILE_EXTENDED_INFO (1<<0)
861
862 /* call op_array handler of extendions */
863 #define ZEND_COMPILE_HANDLE_OP_ARRAY (1<<1)
864
865 /* generate ZEND_DO_FCALL_BY_NAME for internal functions instead of ZEND_DO_FCALL */
866 #define ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS (1<<2)
867
868 /* don't perform early binding for classes inherited form internal ones;
869 * in namespaces assume that internal class that doesn't exist at compile-time
870 * may apper in run-time */
871 #define ZEND_COMPILE_IGNORE_INTERNAL_CLASSES (1<<3)
872
873 /* generate ZEND_DECLARE_INHERITED_CLASS_DELAYED opcode to delay early binding */
874 #define ZEND_COMPILE_DELAYED_BINDING (1<<4)
875
ed2d3e4 Substitute persistent constants by their values at compile time. (Matt)
Dmitry Stogov authored Jul 25, 2008
876 /* disable constant substitution at compile-time */
877 #define ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION (1<<5)
878
8c885b8 Implemented concept of "delayed early binding" that allows opcode cac…
Dmitry Stogov authored Mar 18, 2008
879 /* The default value for CG(compiler_options) */
880 #define ZEND_COMPILE_DEFAULT ZEND_COMPILE_HANDLE_OP_ARRAY
881
882 /* The default value for CG(compiler_options) during eval() */
883 #define ZEND_COMPILE_DEFAULT_FOR_EVAL 0
884
a617217 Replace macros which begin with an underscore through an appropiately
Sascha Schumann authored Jul 3, 2000
885 #endif /* ZEND_COMPILE_H */
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
886
887 /*
888 * Local variables:
889 * tab-width: 4
890 * c-basic-offset: 4
891 * indent-tabs-mode: t
892 * End:
893 */
Something went wrong with that request. Please try again.