Skip to content
Newer
Older
100644 787 lines (602 sloc) 28.9 KB
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
1 /*
2 +----------------------------------------------------------------------+
3 | Zend Engine |
4 +----------------------------------------------------------------------+
08659c2 @sebastianbergmann MFH: Bump copyright year, 3 of 3.
sebastianbergmann authored Dec 31, 2008
5 | Copyright (c) 1998-2009 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
76a9a42 - Removed direct executor recursion.
Dmitry Stogov authored Jun 11, 2008
76 typedef int (*user_opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS);
77 typedef int (ZEND_FASTCALL *opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS);
536d4d8 @andigutmans - Improve opcode dispatching
andigutmans authored Oct 19, 2002
78
f82ed13 @andigutmans - Commit new VM architecture. This one allows people (aka Derick) to
andigutmans authored Sep 23, 2004
79 extern ZEND_API opcode_handler_t *zend_opcode_handlers;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
80
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
81 struct _zend_op {
6f9bfe5 @andigutmans - Shift around zend_op members
andigutmans authored Nov 5, 2002
82 opcode_handler_t handler;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
83 znode result;
84 znode op1;
85 znode op2;
39a7f4c @zsuraski This patch is a go. Not fully optimized yet, but working properly.
zsuraski authored Apr 12, 1999
86 ulong extended_value;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
87 uint lineno;
6f9bfe5 @andigutmans - Shift around zend_op members
andigutmans authored Nov 5, 2002
88 zend_uchar opcode;
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
89 };
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
90
91
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
92 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
93 int start;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
94 int cont;
95 int brk;
96 int parent;
97 } zend_brk_cont_element;
98
f66f55e @felipensp MFH: Implemented "jump label" operator (limited "goto")
felipensp authored Mar 28, 2008
99 typedef struct _zend_label {
100 int brk_cont;
101 zend_uint opline_num;
102 } zend_label;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
103
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
104 typedef struct _zend_try_catch_element {
105 zend_uint try_op;
106 zend_uint catch_op; /* ketchup! */
107 } zend_try_catch_element;
108
109
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
110 /* method flags (types) */
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
111 #define ZEND_ACC_STATIC 0x01
112 #define ZEND_ACC_ABSTRACT 0x02
113 #define ZEND_ACC_FINAL 0x04
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
114 #define ZEND_ACC_IMPLEMENTED_ABSTRACT 0x08
6020ffd Simplify detection of methods that must be called dynamic (with object)
Marcus Boerger authored Jan 23, 2004
115
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
116 /* class flags (types) */
117 /* 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). */
118 /* ZEND_ACC_EXPLICIT_ABSTRACT_CLASS denotes that a class was explicitly defined as abstract by using the keyword. */
119 #define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS 0x10
120 #define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS 0x20
121 #define ZEND_ACC_FINAL_CLASS 0x40
122 #define ZEND_ACC_INTERFACE 0x80
e8214a3 @andigutmans - Commit Marcus' cleanup of abstract and static inheritance and improve
andigutmans authored Nov 23, 2002
123
0291ad5 Fixed bug #40236 (php -a function allocation eats memory)
Dmitry Stogov authored Feb 15, 2007
124 /* op_array flags */
125 #define ZEND_ACC_INTERACTIVE 0x10
126
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
127 /* method flags (visibility) */
32b100e @zsuraski - Allow variables to have both 'static' modifier and an access level.
zsuraski authored Dec 9, 2002
128 /* 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
129 #define ZEND_ACC_PUBLIC 0x100
130 #define ZEND_ACC_PROTECTED 0x200
131 #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
132 #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
133
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
134 #define ZEND_ACC_CHANGED 0x800
135 #define ZEND_ACC_IMPLICIT_PUBLIC 0x1000
77208ec @zsuraski Fix incorrect linkage of access-levels, when using private methods
zsuraski authored Jan 2, 2003
136
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
137 /* method flags (special method detection) */
fbda310 - Flag ctor/dtor methods
Marcus Boerger authored Aug 23, 2003
138 #define ZEND_ACC_CTOR 0x2000
7c2e02d Disallow static declaration of clone
Marcus Boerger authored Jan 23, 2004
139 #define ZEND_ACC_DTOR 0x4000
140 #define ZEND_ACC_CLONE 0x8000
1c2512d - Add fn_flag ZEND_ACC_ALIAS
Marcus Boerger authored Aug 24, 2003
141
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
142 /* method flag (bc only), any method that has this flag can be used statically and non statically. */
143 #define ZEND_ACC_ALLOW_STATIC 0x10000
144
2cb5215 @smalyshev MF50: fix #29689 and more private property problems
smalyshev authored Jun 9, 2005
145 /* shadow of parent's private method/property */
146 #define ZEND_ACC_SHADOW 0x20000
147
941b065 - MFH: Function deprecation flag
Marcus Boerger authored Feb 25, 2006
148 /* deprecation flag */
149 #define ZEND_ACC_DEPRECATED 0x40000
150
0f2247a Fixed bug #44414 (Incomplete reporting about abstract methods)
Dmitry Stogov authored Mar 12, 2008
151 /* class implement interface(s) flag */
152 #define ZEND_ACC_IMPLEMENT_INTERFACES 0x80000
153
d5ef2f4 Added support for lambda functions and closures
Dmitry Stogov authored Jul 14, 2008
154 #define ZEND_ACC_CLOSURE 0x100000
155
af05ce0 Fixed is_callable/call_user_func mess that had done different things …
Dmitry Stogov authored Jul 26, 2008
156 /* function flag for internal user call handlers __call, __callstatic */
157 #define ZEND_ACC_CALL_VIA_HANDLER 0x200000
0f2247a Fixed bug #44414 (Incomplete reporting about abstract methods)
Dmitry Stogov authored Mar 12, 2008
158
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
159 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
160
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
161
162 typedef struct _zend_property_info {
163 zend_uint flags;
164 char *name;
165 int name_length;
166 ulong h;
67a226d - Add ReflectionProperty::getDocComment()
Marcus Boerger authored Apr 19, 2005
167 char *doc_comment;
168 int doc_comment_len;
493f39d - MFH: Fix bug #37212 (Access to protected property of common base cl…
Marcus Boerger authored May 27, 2006
169 zend_class_entry *ce;
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
170 } zend_property_info;
171
172
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
173 typedef struct _zend_arg_info {
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
174 const char *name;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
175 zend_uint name_len;
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
176 const char *class_name;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
177 zend_uint class_name_len;
1a72341 Added array type hinting. (This patch requires full re-make)
Dmitry Stogov authored May 26, 2005
178 zend_bool array_type_hint;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
179 zend_bool allow_null;
180 zend_bool pass_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
181 zend_bool return_reference;
7086634 @zsuraski - Improve ARG_INFO() macros to support supplying required_num_args
zsuraski authored Feb 25, 2004
182 int required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
183 } zend_arg_info;
184
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
185 typedef struct _zend_compiled_variable {
186 char *name;
187 int name_len;
188 ulong hash_value;
189 } zend_compiled_variable;
190
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
191 struct _zend_op_array {
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
192 /* Common elements */
193 zend_uchar type;
194 char *function_name;
195 zend_class_entry *scope;
196 zend_uint fn_flags;
197 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
198 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
199 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
200 zend_arg_info *arg_info;
201 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
202 unsigned char return_reference;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
203 /* END of common elements */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
204
5521912 Use IS_CV for dirrent access to $this variable
Dmitry Stogov authored May 7, 2008
205 zend_bool done_pass_two;
206
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
207 zend_uint *refcount;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
208
209 zend_op *opcodes;
232b904 @zsuraski Clean up last/size definitions
zsuraski authored Apr 10, 2000
210 zend_uint last, size;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
211
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
212 zend_compiled_variable *vars;
213 int last_var, size_var;
214
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
215 zend_uint T;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
216
217 zend_brk_cont_element *brk_cont_array;
f8f26de @felipensp Fix for segfault on 64bit platform
felipensp authored Mar 29, 2008
218 int last_brk_cont;
219 int current_brk_cont;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
220
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
221 zend_try_catch_element *try_catch_array;
222 int last_try_catch;
223
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
224 /* static variables support */
225 HashTable *static_variables;
226
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
227 zend_op *start_op;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
228 int backpatch_count;
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
229
5521912 Use IS_CV for dirrent access to $this variable
Dmitry Stogov authored May 7, 2008
230 zend_uint this_var;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
231
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
232 char *filename;
5657b83 Multi-purpose patch:
Andrei Zmievski authored Mar 31, 2003
233 zend_uint line_start;
234 zend_uint line_end;
235 char *doc_comment;
236 zend_uint doc_comment_len;
8c885b8 Implemented concept of "delayed early binding" that allows opcode cac…
Dmitry Stogov authored Mar 18, 2008
237 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
238
b5f5e9a @andigutmans - Optimize the execute stack a bit.
andigutmans authored Aug 15, 1999
239 void *reserved[ZEND_MAX_RESERVED_RESOURCES];
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
240 };
241
242
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
243 #define ZEND_RETURN_VALUE 0
244 #define ZEND_RETURN_REFERENCE 1
245
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
246 typedef struct _zend_internal_function {
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
247 /* Common elements */
248 zend_uchar type;
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
249 char * function_name;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
250 zend_class_entry *scope;
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
251 zend_uint fn_flags;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
252 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
253 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
254 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
255 zend_arg_info *arg_info;
256 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
257 unsigned char return_reference;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
258 /* END of common elements */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
259
260 void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
261 struct _zend_module_entry *module;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
262 } zend_internal_function;
263
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
264 #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
265
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
266 typedef union _zend_function {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
267 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
268
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
269 struct {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
270 zend_uchar type; /* never used */
7f35cfd @zsuraski *** empty log message ***
zsuraski authored Oct 25, 1999
271 char *function_name;
d1eea3d @andigutmans - Fix bug in nested try/catch's
andigutmans authored Mar 1, 2002
272 zend_class_entry *scope;
01e853c @andigutmans - My personal cleanups
andigutmans authored Nov 23, 2002
273 zend_uint fn_flags;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
274 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
275 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
276 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
277 zend_arg_info *arg_info;
278 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
279 unsigned char return_reference;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
280 } common;
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
281
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
282 zend_op_array op_array;
283 zend_internal_function internal_function;
284 } zend_function;
285
286
9cb2cf1 @zsuraski Optimize allocations into uninitialized_zval assignments
zsuraski authored May 20, 1999
287 typedef struct _zend_function_state {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
288 zend_function *function;
0b68251 Changed EG(argument_stack) implementation.
Dmitry Stogov authored Jan 24, 2008
289 void **arguments;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
290 } zend_function_state;
291
292
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
293 typedef struct _zend_switch_entry {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
294 znode cond;
295 int default_case;
296 int control_var;
297 } zend_switch_entry;
298
299
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
300 typedef struct _list_llist_element {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
301 znode var;
302 zend_llist dimensions;
303 znode value;
304 } list_llist_element;
305
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
306 union _temp_variable;
307
1327480 @andigutmans - Fix compile warning.
andigutmans authored Oct 19, 2002
308 struct _zend_execute_data {
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
309 struct _zend_op *opline;
310 zend_function_state function_state;
311 zend_function *fbc; /* Function Being Called */
166266d Added support for Late Static Binding. (Dmitry, Etienne Kneuss)
Dmitry Stogov authored Sep 29, 2007
312 zend_class_entry *called_scope;
41e3f4f @andigutmans - Fix problem with debug_backtrace() reported by Stig. We weren't rep…
andigutmans authored Jul 26, 2002
313 zend_op_array *op_array;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
314 zval *object;
315 union _temp_variable *Ts;
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
316 zval ***CVs;
317 HashTable *symbol_table;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
318 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
319 zval *old_error_reporting;
76a9a42 - Removed direct executor recursion.
Dmitry Stogov authored Jun 11, 2008
320 zend_bool nested;
321 zval **original_return_value;
322 zend_class_entry *current_scope;
323 zend_class_entry *current_called_scope;
324 zval *current_this;
325 zval *current_object;
326 struct _zend_op *call_opline;
1327480 @andigutmans - Fix compile warning.
andigutmans authored Oct 19, 2002
327 };
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
328
b66c89c @andigutmans - More debug backtrace work. It still doesn't work very well...
andigutmans authored May 7, 2002
329 #define EX(element) execute_data.element
330
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
331
332 #define IS_CONST (1<<0)
333 #define IS_TMP_VAR (1<<1)
334 #define IS_VAR (1<<2)
335 #define IS_UNUSED (1<<3) /* Unused variable */
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
336 #define IS_CV (1<<4) /* Compiled variable */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
337
1b317f1 - Use ZEND_FREE() opcode instead of ZEND_SWITCH_FREE(IS_TMP_VAR)
Dmitry Stogov authored May 5, 2008
338 #define EXT_TYPE_UNUSED (1<<0)
339 #define EXT_TYPE_FREE_ON_RETURN (2<<0)
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
340
df74f1d Add optional support for C0x inline semantics.
Sascha Schumann authored Jun 13, 2000
341 #include "zend_globals.h"
342
ad115d2 @zsuraski Fix require()
zsuraski authored Jan 29, 2000
343 BEGIN_EXTERN_C()
344
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
345 void init_compiler(TSRMLS_D);
346 void shutdown_compiler(TSRMLS_D);
347 void zend_init_compiler_data_structures(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
348
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
349 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
350 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
351
1fd542f @sebastianbergmann Export lex_scan(). Both the PHPDoc and tokenizer extension need this.…
sebastianbergmann authored Feb 10, 2002
352 ZEND_API int lex_scan(zval *zendlval TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
353 void startup_scanner(TSRMLS_D);
354 void shutdown_scanner(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
355
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
356 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
357 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
358 ZEND_API char *zend_get_compiled_filename(TSRMLS_D);
359 ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
a28497d - Fix __halt_compiler() weirdness with zend-mulibyte enabled
Moriyoshi Koizumi authored Jul 28, 2008
360 ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
361
1b4134c @smalyshev Namespace resolution streamlining patch
smalyshev authored Nov 11, 2008
362 void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC);
9e2894f @felipensp MFH:
felipensp authored Mar 25, 2008
363 void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
364 ZEND_API 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
365
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
366 #ifdef ZTS
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
367 const char *zend_get_zendtext(TSRMLS_D);
368 int zend_get_zendleng(TSRMLS_D);
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
369 #endif
370
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
371
372 /* parser-driven code generators */
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
373 void zend_do_binary_op(zend_uchar op, znode *result, const znode *op1, const znode *op2 TSRMLS_DC);
374 void zend_do_unary_op(zend_uchar op, znode *result, const znode *op1 TSRMLS_DC);
375 void zend_do_binary_assign_op(zend_uchar op, znode *result, const znode *op1, const znode *op2 TSRMLS_DC);
376 void zend_do_assign(znode *result, znode *variable, const znode *value TSRMLS_DC);
377 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
378 void fetch_simple_variable(znode *result, znode *varname, int bp TSRMLS_DC);
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
379 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
380 void zend_do_indirect_references(znode *result, const znode *num_references, znode *variable TSRMLS_DC);
381 void zend_do_fetch_static_variable(znode *varname, const znode *static_assignment, int fetch_type TSRMLS_DC);
382 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
383
384 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
385 void fetch_array_dim(znode *result, const znode *parent, const znode *dim TSRMLS_DC);
386 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
387 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
388 void zend_do_print(znode *result, const znode *arg TSRMLS_DC);
389 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
390 typedef int (*unary_op_type)(zval *, zval * TSRMLS_DC);
391 typedef int (*binary_op_type)(zval *, zval *, zval * TSRMLS_DC);
8802964 * fix some casts
Sascha Schumann authored May 30, 1999
392 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
393 ZEND_API binary_op_type get_binary_op(int opcode);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
394
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
395 void zend_do_while_cond(const znode *expr, znode *close_bracket_token TSRMLS_DC);
396 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
397 void zend_do_do_while_begin(TSRMLS_D);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
398 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
399
400
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
401 void zend_do_if_cond(const znode *cond, znode *closing_bracket_token TSRMLS_DC);
402 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
403 void zend_do_if_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
404
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
405 void zend_do_for_cond(const znode *expr, znode *second_semicolon_token TSRMLS_DC);
406 void zend_do_for_before_statement(const znode *cond_start, const znode *second_semicolon_token TSRMLS_DC);
407 void zend_do_for_end(const znode *second_semicolon_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
408
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
409 void zend_do_pre_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC);
410 void zend_do_post_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
411
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
412 void zend_do_begin_variable_parse(TSRMLS_D);
5521912 Use IS_CV for dirrent access to $this variable
Dmitry Stogov authored May 7, 2008
413 void zend_do_end_variable_parse(znode *variable, int type, int arg_offset TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
414
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
415 void zend_check_writable_variable(const znode *variable);
ac7ed46 @andigutmans - Start adding parsed variable checks.
andigutmans authored Dec 16, 2001
416
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
417 void zend_do_free(znode *op1 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
418
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
419 void zend_do_add_string(znode *result, const znode *op1, znode *op2 TSRMLS_DC);
420 void zend_do_add_variable(znode *result, const znode *op1, const znode *op2 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
421
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
422 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
423 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
424 void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC);
425 void zend_do_receive_arg(zend_uchar op, const znode *var, const znode *offset, const znode *initialization, znode *class_type, const znode *varname, zend_bool pass_by_reference TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
426 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
427 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
428 void zend_do_clone(znode *result, const znode *expr TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
429 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
430 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
431 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
432 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
433 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
434 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
435 void zend_do_handle_exception(TSRMLS_D);
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
436
c6d89bd [DOC] Remove $this support in closures for PHP 5.3 beta 1
Christian Seiler authored Jan 26, 2009
437 void zend_do_begin_lambda_function_declaration(znode *result, znode *function_token, int return_reference TSRMLS_DC);
d5ef2f4 Added support for lambda functions and closures
Dmitry Stogov authored Jul 14, 2008
438 void zend_do_fetch_lexical_variable(znode *varname, zend_bool is_ref TSRMLS_DC);
439
6197021 @andigutmans - Make it compile in thread-safe mode.
andigutmans authored Aug 30, 2001
440 void zend_do_try(znode *try_token TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
441 void zend_do_begin_catch(znode *try_token, znode *catch_class, const znode *catch_var, znode *first_catch TSRMLS_DC);
442 void zend_do_end_catch(const znode *try_token TSRMLS_DC);
443 void zend_do_throw(const znode *expr TSRMLS_DC);
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
444
c5d8422 @zsuraski Reinstate early-binding for classes.
zsuraski authored Feb 4, 2004
445 ZEND_API int do_bind_function(zend_op *opline, HashTable *function_table, zend_bool compile_time);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
446 ZEND_API zend_class_entry *do_bind_class(const zend_op *opline, HashTable *class_table, zend_bool compile_time TSRMLS_DC);
447 ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op *opline, HashTable *class_table, zend_class_entry *parent_ce, zend_bool compile_time TSRMLS_DC);
448 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
449 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
450 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
451
4918b67 - Make zend_do_inheritance ZEND_API
Marcus Boerger authored May 28, 2005
452 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
453 void zend_do_early_binding(TSRMLS_D);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
454 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
455
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
456 void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
457
458
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
459 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
460 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
461 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
462 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
463
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
464 void zend_do_brk_cont(zend_uchar op, const znode *expr TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
465
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
466 void zend_do_switch_cond(const znode *cond TSRMLS_DC);
467 void zend_do_switch_end(const znode *case_list TSRMLS_DC);
468 void zend_do_case_before_statement(const znode *case_list, znode *case_token, const znode *case_expr TSRMLS_DC);
469 void zend_do_case_after_statement(znode *result, const znode *case_token TSRMLS_DC);
470 void zend_do_default_before_statement(const znode *case_list, znode *default_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
471
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
472 void zend_do_begin_class_declaration(const znode *class_token, znode *class_name, const znode *parent_class_name TSRMLS_DC);
473 void zend_do_end_class_declaration(const znode *class_token, const znode *parent_token TSRMLS_DC);
474 void zend_do_declare_property(const znode *var_name, const znode *value, zend_uint access_type TSRMLS_DC);
8d2a4e0 @zsuraski Fix bogus implicit declarations of properties (squash bug #23671)
zsuraski authored Jun 9, 2003
475 void zend_do_declare_implicit_property(TSRMLS_D);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
476 void zend_do_declare_class_constant(znode *var_name, const znode *value TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
477
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
478 void zend_do_fetch_property(znode *result, znode *object, const znode *property TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
479
17c0c49 Addres limitation of __HALT_COMPILER() that allowed only one instance
Ilia Alshanetsky authored Apr 4, 2007
480 void zend_do_halt_compiler_register(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
481
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
482 void zend_do_push_object(const znode *object TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
483 void zend_do_pop_object(znode *object TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
484
485
a332f82 @andigutmans - Support instantiation of nested class. The following script now should
andigutmans authored Nov 4, 2001
486 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
487 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
488
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
489 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
490
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
491 void zend_do_shell_exec(znode *result, const znode *cmd 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_do_init_array(znode *result, const znode *expr, const znode *offset, zend_bool is_ref TSRMLS_DC);
494 void zend_do_add_array_element(znode *result, const znode *expr, const znode *offset, zend_bool is_ref TSRMLS_DC);
495 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
496 void zend_do_list_init(TSRMLS_D);
497 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
498 void zend_do_add_list_element(const znode *element TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
499 void zend_do_new_list_begin(TSRMLS_D);
500 void zend_do_new_list_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
501
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
502 void zend_do_cast(znode *result, const znode *expr, int type TSRMLS_DC);
503 void zend_do_include_or_eval(int type, znode *result, const znode *op1 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
504
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
505 void zend_do_unset(const znode *variable TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
506 void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
507
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
508 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
509
e470e22 - Fixed bug #35106 (nested foreach fails when array variable has a re…
Dmitry Stogov authored Jan 10, 2007
510 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
511 void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token, const znode *as_token, znode *value, znode *key TSRMLS_DC);
512 void zend_do_foreach_end(const znode *foreach_token, const znode *as_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
513
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
514 void zend_do_declare_begin(TSRMLS_D);
515 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
516 void zend_do_declare_end(const znode *declare_token TSRMLS_DC);
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
517
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
518 void zend_do_exit(znode *result, const znode *message TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
519
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
520 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
521 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
522
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
523 void zend_do_jmp_set(const znode *value, znode *jmp_token, znode *colon_token TSRMLS_DC);
524 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
525
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
526 void zend_do_begin_qm_op(const znode *cond, znode *qm_token TSRMLS_DC);
527 void zend_do_qm_true(const znode *true_value, znode *qm_token, znode *colon_token TSRMLS_DC);
528 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
529
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
530 void zend_do_extended_info(TSRMLS_D);
531 void zend_do_extended_fcall_begin(TSRMLS_D);
532 void zend_do_extended_fcall_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
533
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
534 void zend_do_ticks(TSRMLS_D);
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
535
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
536 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
537
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
538 void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC);
539 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
540 void zend_do_begin_namespace(const znode *name, zend_bool with_brackets TSRMLS_DC);
541 void zend_do_end_namespace(TSRMLS_D);
542 void zend_verify_namespace(TSRMLS_D);
64e8f22 Allowed import of global classes "use ::GlobalClassName;"
Dmitry Stogov authored Dec 13, 2007
543 void zend_do_use(znode *name, znode *new_name, int is_global TSRMLS_DC);
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
544 void zend_do_end_compilation(TSRMLS_D);
545
f66f55e @felipensp MFH: Implemented "jump label" operator (limited "goto")
felipensp authored Mar 28, 2008
546 void zend_do_label(znode *label TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
547 void zend_do_goto(const znode *label TSRMLS_DC);
f66f55e @felipensp MFH: Implemented "jump label" operator (limited "goto")
felipensp authored Mar 28, 2008
548 void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2 TSRMLS_DC);
549 void zend_release_labels(TSRMLS_D);
550
727398b @andigutmans Add to the API
andigutmans authored Jun 13, 2000
551 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
552
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
553 #define INITIAL_OP_ARRAY_SIZE 64
554
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
555
7b0d92d @zsuraski Unify the names of these last 3 files...
zsuraski authored Oct 29, 2000
556 /* helper functions in zend_language_scanner.l */
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
557 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
558 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
559 ZEND_API zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC);
819ea51 @zsuraski MFZE1
zsuraski authored Aug 31, 2001
560 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
561 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
562 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
563 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
564 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
565 ZEND_API int zend_cleanup_class_data(zend_class_entry **pce TSRMLS_DC);
566 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
567 ZEND_API int zend_cleanup_function_data_full(zend_function *function TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
568
3fc8528 @sebastianbergmann Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_cla…
sebastianbergmann authored Mar 26, 2003
569 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
570 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
571 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
572 void zend_class_add_ref(zend_class_entry **ce);
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
573
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
574 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);
519ed8e - Better fix for #34505 and related, drop zend_unmangle_property_name…
Marcus Boerger authored Jul 24, 2006
575 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
576
fb5cb59 Fixed Zend Function Destructor to use correct TSRM handle.
Stefan Esser authored Jun 6, 2004
577 #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
578 #define ZEND_CLASS_DTOR (void (*)(void *)) destroy_zend_class
81d901b @zsuraski Step 1 in nuking the garbage collector:
zsuraski authored Jul 9, 1999
579
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
580 zend_op *get_next_op(zend_op_array *op_array TSRMLS_DC);
581 void init_op(zend_op *op TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
582 int get_next_op_number(zend_op_array *op_array);
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
583 int print_class(zend_class_entry *class_entry TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
584 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
585 ZEND_API int pass_two(zend_op_array *op_array TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
586 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
587 void zend_do_first_catch(znode *open_parentheses TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
588 void zend_initialize_try_catch_element(const znode *try_token TSRMLS_DC);
589 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
590 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
591 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
592 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
593 int zend_get_class_fetch_type(const char *class_name, uint class_name_len);
c17c7a2 @zsuraski Centralize class initialization
zsuraski authored Feb 10, 2003
594
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
595 typedef zend_bool (*zend_auto_global_callback)(char *name, uint name_len TSRMLS_DC);
596 typedef struct _zend_auto_global {
597 char *name;
598 uint name_len;
599 zend_auto_global_callback auto_global_callback;
600 zend_bool armed;
601 } zend_auto_global;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
602
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
603 void zend_auto_global_dtor(zend_auto_global *auto_global);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
604 ZEND_API int zend_register_auto_global(const char *name, uint name_len, zend_auto_global_callback auto_global_callback TSRMLS_DC);
605 ZEND_API zend_bool zend_is_auto_global(const char *name, uint name_len TSRMLS_DC);
606 ZEND_API int zend_auto_global_disable_jit(const char *varname, zend_uint varname_length TSRMLS_DC);
fd597dc @smalyshev [DOC] Add compile-time __DIR__ constant which implements dirname(__FI…
smalyshev authored Feb 12, 2008
607 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
608
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
609 int zendlex(znode *zendlval TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
610
5ae7fa4 add markers that make this file easy to parse for external sources
Sterling Hughes authored Apr 7, 2003
611 /* BEGIN: OPCODES */
f7f5a5e @smalyshev MEGA-patch: namespaces are R.I.P.
smalyshev authored Jun 2, 2003
612
a904c1d @andigutmans - Improve comments, docs, code...
andigutmans authored Oct 27, 2004
613 #include "zend_vm_opcodes.h"
a4c3b2c @smalyshev Namespace patch. Big changes:
smalyshev authored Feb 16, 2003
614
a904c1d @andigutmans - Improve comments, docs, code...
andigutmans authored Oct 27, 2004
615 #define ZEND_OP_DATA 137
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
616
5ae7fa4 add markers that make this file easy to parse for external sources
Sterling Hughes authored Apr 7, 2003
617 /* END: OPCODES */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
618
619
620
621
622 /* global/local fetches */
d2da63f @andigutmans - Support static members. The following script works:
andigutmans authored Nov 25, 2001
623 #define ZEND_FETCH_GLOBAL 0
624 #define ZEND_FETCH_LOCAL 1
625 #define ZEND_FETCH_STATIC 2
626 #define ZEND_FETCH_STATIC_MEMBER 3
d5ef2f4 Added support for lambda functions and closures
Dmitry Stogov authored Jul 14, 2008
627 #define ZEND_FETCH_GLOBAL_LOCK 4
628 #define ZEND_FETCH_LEXICAL 5
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
629
68fa4e5 @zsuraski Get rid of an opcode
zsuraski authored Jul 30, 2003
630
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
631 /* class fetches */
632 #define ZEND_FETCH_CLASS_DEFAULT 0
633 #define ZEND_FETCH_CLASS_SELF 1
b3fd2fa @andigutmans - Support parent:: again
andigutmans authored Dec 27, 2001
634 #define ZEND_FETCH_CLASS_PARENT 2
635 #define ZEND_FETCH_CLASS_MAIN 3
a4c3b2c @smalyshev Namespace patch. Big changes:
smalyshev authored Feb 16, 2003
636 #define ZEND_FETCH_CLASS_GLOBAL 4
9d7122f @zsuraski Generalize fetch_class
zsuraski authored Aug 3, 2003
637 #define ZEND_FETCH_CLASS_AUTO 5
12b66c2 Fixed bug #30519 (Interface not existing says Class not found)
Dmitry Stogov authored Jun 24, 2005
638 #define ZEND_FETCH_CLASS_INTERFACE 6
166266d Added support for Late Static Binding. (Dmitry, Etienne Kneuss)
Dmitry Stogov authored Sep 29, 2007
639 #define ZEND_FETCH_CLASS_STATIC 7
eb0c56a Fixed bug #42820 (defined() on constant with namespace prefixes tries…
Dmitry Stogov authored Oct 3, 2007
640 #define ZEND_FETCH_CLASS_MASK 0x0f
9305339 Changed "instanceof" and "catch" operators, is_a() and is_subclass_of…
Dmitry Stogov authored Sep 9, 2005
641 #define ZEND_FETCH_CLASS_NO_AUTOLOAD 0x80
eb0c56a Fixed bug #42820 (defined() on constant with namespace prefixes tries…
Dmitry Stogov authored Oct 3, 2007
642 #define ZEND_FETCH_CLASS_SILENT 0x0100
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
643
880e7d8 @andigutmans - Framework for knowing what kind of variable we just parsed.
andigutmans authored Dec 16, 2001
644 /* variable parsing type (compile-time) */
03b6af0 @zsuraski Support references in foreach()
zsuraski authored Jul 24, 2003
645 #define ZEND_PARSED_MEMBER (1<<0)
646 #define ZEND_PARSED_METHOD_CALL (1<<1)
647 #define ZEND_PARSED_STATIC_MEMBER (1<<2)
648 #define ZEND_PARSED_FUNCTION_CALL (1<<3)
649 #define ZEND_PARSED_VARIABLE (1<<4)
650 #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
651 #define ZEND_PARSED_NEW (1<<6)
880e7d8 @andigutmans - Framework for knowing what kind of variable we just parsed.
andigutmans authored Dec 16, 2001
652
653
5af7770 @andigutmans - Sync Engine2 CVS with latest Engine CVS
andigutmans authored Aug 7, 2001
654 /* unset types */
655 #define ZEND_UNSET_REG 0
656
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
657 /* var status for backpatching */
06d04d1 @andigutmans - Fix SEND_VAR problem after fetch'ing a variable and not knowing the…
andigutmans authored Sep 29, 1999
658 #define BP_VAR_R 0
659 #define BP_VAR_W 1
660 #define BP_VAR_RW 2
661 #define BP_VAR_IS 3
662 #define BP_VAR_NA 4 /* if not applicable */
663 #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
664 #define BP_VAR_UNSET 6
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
665
666
49c4866 @zsuraski - Improve tracking
zsuraski authored Aug 18, 2003
667 #define ZEND_INTERNAL_FUNCTION 1
668 #define ZEND_USER_FUNCTION 2
669 #define ZEND_OVERLOADED_FUNCTION 3
670 #define ZEND_EVAL_CODE 4
671 #define ZEND_OVERLOADED_FUNCTION_TEMPORARY 5
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
672
62f9eb8 Split ZEND_NAMESPACE into user and internal namespaces. Hope this is
Andrei Zmievski authored Apr 1, 2003
673 #define ZEND_INTERNAL_CLASS 1
674 #define ZEND_USER_CLASS 2
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
675
676 #define ZEND_EVAL (1<<0)
677 #define ZEND_INCLUDE (1<<1)
9cc7044 @andigutmans - Cleanup old IMPORT stuff
andigutmans authored Mar 10, 2000
678 #define ZEND_INCLUDE_ONCE (1<<2)
67b4b3a @zsuraski - require() of a dynamic expression now has the standard require() se…
zsuraski authored Dec 23, 1999
679 #define ZEND_REQUIRE (1<<3)
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
680 #define ZEND_REQUIRE_ONCE (1<<4)
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
681
682 #define ZEND_ISSET (1<<0)
683 #define ZEND_ISEMPTY (1<<1)
af1ed80 Fixed bug #44952 (isset() does not checks correctly variable variable)
Dmitry Stogov authored May 12, 2008
684 #define ZEND_ISSET_ISEMPTY_MASK (ZEND_ISSET | ZEND_ISEMPTY)
685 #define ZEND_QUICK_SET (1<<2)
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
686
687 #define ZEND_CT (1<<0)
688 #define ZEND_RT (1<<1)
689
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
690 #define ZEND_FETCH_STANDARD 0
1530fe9 Fixed variations of bug #35163
Dmitry Stogov authored Oct 23, 2007
691 #define ZEND_FETCH_ADD_LOCK (1<<0)
692 #define ZEND_FETCH_MAKE_REF (1<<1)
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
693
993f70c @andigutmans - Don't use magic numbers
andigutmans authored Aug 12, 2004
694 #define ZEND_FE_FETCH_BYREF 1
695 #define ZEND_FE_FETCH_WITH_KEY 2
696
7a5240e - MFH missing bits and pieces of the partial sync with head
Marcus Boerger authored May 11, 2006
697 #define ZEND_FE_RESET_VARIABLE 1
698 #define ZEND_FE_RESET_REFERENCE 2
699
741b816 @zsuraski * Support getThis() for internal functions.
zsuraski authored May 28, 1999
700 #define ZEND_MEMBER_FUNC_CALL 1<<0
701
8d90825 @andigutmans - Allow passing references which are returned from functions and new
andigutmans authored Nov 27, 2000
702 #define ZEND_ARG_SEND_BY_REF (1<<0)
703 #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
704 #define ZEND_ARG_SEND_FUNCTION (1<<2)
666bf10 Removed wrong warning message
Dmitry Stogov authored Jan 20, 2009
705 #define ZEND_ARG_SEND_SILENT (1<<3)
6ec1acb @zsuraski Phase 3:
zsuraski authored Jul 9, 1999
706
ebd4ab4 Fixed bug #25359 (array_multisort() doesn't work in a function if arr…
Dmitry Stogov authored Aug 10, 2005
707 #define ZEND_SEND_BY_VAL 0
708 #define ZEND_SEND_BY_REF 1
709 #define ZEND_SEND_PREFER_REF 2
710
c3272ab Fixed bug #38808 ("maybe ref" issue for current() and others)
Dmitry Stogov authored Sep 26, 2006
711 #define ARG_SEND_TYPE(zf, arg_num) \
712 ((zf) ? \
713 ((((zend_function*)(zf))->common.arg_info && \
714 arg_num<=((zend_function*)(zf))->common.num_args) ? \
715 ((zend_function *)(zf))->common.arg_info[arg_num-1].pass_by_reference : \
716 ((zend_function *)(zf))->common.pass_rest_by_reference) : \
717 ZEND_SEND_BY_VAL)
718
719 #define ARG_MUST_BE_SENT_BY_REF(zf, arg_num) \
720 (ARG_SEND_TYPE(zf, arg_num) == ZEND_SEND_BY_REF)
721
722 #define ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num) \
723 (ARG_SEND_TYPE(zf, arg_num) & (ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF))
724
725 #define ARG_MAY_BE_SENT_BY_REF(zf, arg_num) \
726 (ARG_SEND_TYPE(zf, arg_num) == ZEND_SEND_PREFER_REF)
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
727
ced9cee @zsuraski - Implement return by reference:
zsuraski authored Dec 15, 1999
728 #define ZEND_RETURN_VAL 0
729 #define ZEND_RETURN_REF 1
730
3a42bab @zsuraski Fix behavior of return-by-reference functions. Remove erroneous warni…
zsuraski authored Dec 14, 2003
731
732 #define ZEND_RETURNS_FUNCTION 1<<0
44325e6 Fixed bug #45178 (memory corruption on assignment result of "new" by …
Dmitry Stogov authored Jul 24, 2008
733 #define ZEND_RETURNS_NEW 1<<1
3a42bab @zsuraski Fix behavior of return-by-reference functions. Remove erroneous warni…
zsuraski authored Dec 14, 2003
734
ad115d2 @zsuraski Fix require()
zsuraski authored Jan 29, 2000
735 END_EXTERN_C()
736
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
737 #define ZEND_CLONE_FUNC_NAME "__clone"
738 #define ZEND_CONSTRUCTOR_FUNC_NAME "__construct"
739 #define ZEND_DESTRUCTOR_FUNC_NAME "__destruct"
740 #define ZEND_GET_FUNC_NAME "__get"
741 #define ZEND_SET_FUNC_NAME "__set"
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
742 #define ZEND_UNSET_FUNC_NAME "__unset"
743 #define ZEND_ISSET_FUNC_NAME "__isset"
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
744 #define ZEND_CALL_FUNC_NAME "__call"
b20ed0d Added support for __callstatic() magic method. (Sara)
Dmitry Stogov authored Sep 29, 2007
745 #define ZEND_CALLSTATIC_FUNC_NAME "__callstatic"
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
746 #define ZEND_TOSTRING_FUNC_NAME "__tostring"
5f0433d MFB: Enforce protocol on magic methods/functions
Marcus Boerger authored Aug 2, 2004
747 #define ZEND_AUTOLOAD_FUNC_NAME "__autoload"
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
748
8c885b8 Implemented concept of "delayed early binding" that allows opcode cac…
Dmitry Stogov authored Mar 18, 2008
749 /* The following constants may be combined in CG(compiler_options)
750 * to change the default compiler behavior */
751
752 /* generate extended debug information */
753 #define ZEND_COMPILE_EXTENDED_INFO (1<<0)
754
755 /* call op_array handler of extendions */
756 #define ZEND_COMPILE_HANDLE_OP_ARRAY (1<<1)
757
758 /* generate ZEND_DO_FCALL_BY_NAME for internal functions instead of ZEND_DO_FCALL */
759 #define ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS (1<<2)
760
761 /* don't perform early binding for classes inherited form internal ones;
762 * in namespaces assume that internal class that doesn't exist at compile-time
763 * may apper in run-time */
764 #define ZEND_COMPILE_IGNORE_INTERNAL_CLASSES (1<<3)
765
766 /* generate ZEND_DECLARE_INHERITED_CLASS_DELAYED opcode to delay early binding */
767 #define ZEND_COMPILE_DELAYED_BINDING (1<<4)
768
ed2d3e4 Substitute persistent constants by their values at compile time. (Matt)
Dmitry Stogov authored Jul 25, 2008
769 /* disable constant substitution at compile-time */
770 #define ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION (1<<5)
771
8c885b8 Implemented concept of "delayed early binding" that allows opcode cac…
Dmitry Stogov authored Mar 18, 2008
772 /* The default value for CG(compiler_options) */
773 #define ZEND_COMPILE_DEFAULT ZEND_COMPILE_HANDLE_OP_ARRAY
774
775 /* The default value for CG(compiler_options) during eval() */
776 #define ZEND_COMPILE_DEFAULT_FOR_EVAL 0
777
a617217 Replace macros which begin with an underscore through an appropiately
Sascha Schumann authored Jul 3, 2000
778 #endif /* ZEND_COMPILE_H */
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
779
780 /*
781 * Local variables:
782 * tab-width: 4
783 * c-basic-offset: 4
784 * indent-tabs-mode: t
785 * End:
786 */
Something went wrong with that request. Please try again.