Skip to content
Newer
Older
100644 743 lines (616 sloc) 39.3 KB
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
1 /*
2 +----------------------------------------------------------------------+
3 | Zend Engine |
4 +----------------------------------------------------------------------+
4e19825 @felipensp - Year++
felipensp authored Jan 1, 2012
5 | Copyright (c) 1998-2012 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, |
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
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> |
58f8805 Adding new parameter parsing API.
Andrei Zmievski authored Jul 9, 2001
17 | Andrei Zmievski <andrei@php.net> |
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
18 +----------------------------------------------------------------------+
19 */
20
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
21 /* $Id$ */
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
22
b982307 Change header protection macros to conform to standard.
Sascha Schumann authored Jul 2, 2000
23 #ifndef ZEND_API_H
24 #define ZEND_API_H
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
25
7080fa5 @andigutmans - Rename modules.h to zend_modules.h
andigutmans authored Feb 26, 2001
26 #include "zend_modules.h"
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
27 #include "zend_list.h"
5dba477 @zsuraski - Some header dependencies cleanup
zsuraski authored Mar 25, 2000
28 #include "zend_operators.h"
29 #include "zend_variables.h"
df74f1d Add optional support for C0x inline semantics.
Sascha Schumann authored Jun 13, 2000
30 #include "zend_execute.h"
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
31
0450ab9 @zsuraski MFZE1 (Expose more C++ APIs)
zsuraski authored May 20, 2002
32
33 BEGIN_EXTERN_C()
e9d126a @andigutmans - Make sure zend_API.h has Zend'ish versions of the ZEND macros so that
andigutmans authored Mar 29, 2000
34
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
35 typedef struct _zend_function_entry {
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
36 const char *fname;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
37 void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
38 const struct _zend_arg_info *arg_info;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
39 zend_uint num_args;
40 zend_uint flags;
41 } zend_function_entry;
42
feb8580 LSB parent/self forwarding
Dmitry Stogov authored Jul 24, 2008
43 typedef struct _zend_fcall_info {
44 size_t size;
45 HashTable *function_table;
46 zval *function_name;
47 HashTable *symbol_table;
48 zval **retval_ptr_ptr;
49 zend_uint param_count;
50 zval ***params;
7d4fd3f Fixed bug #46409 (__invoke method called outside of object context wh…
Dmitry Stogov authored Nov 27, 2008
51 zval *object_ptr;
feb8580 LSB parent/self forwarding
Dmitry Stogov authored Jul 24, 2008
52 zend_bool no_separation;
53 } zend_fcall_info;
54
55 typedef struct _zend_fcall_info_cache {
56 zend_bool initialized;
57 zend_function *function_handler;
58 zend_class_entry *calling_scope;
59 zend_class_entry *called_scope;
7d4fd3f Fixed bug #46409 (__invoke method called outside of object context wh…
Dmitry Stogov authored Nov 27, 2008
60 zval *object_ptr;
feb8580 LSB parent/self forwarding
Dmitry Stogov authored Jul 24, 2008
61 } zend_fcall_info_cache;
62
7126de4 - Next step in namespaces, using / as namespace separator.
Marcus Boerger authored Nov 4, 2008
63 #define ZEND_NS_NAME(ns, name) ns"\\"name
907fa66 Added API to use namesapces in internal extensions
Dmitry Stogov authored May 12, 2008
64
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
65 #define ZEND_FN(name) zif_##name
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
66 #define ZEND_MN(name) zim_##name
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
67 #define ZEND_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS)
68 #define ZEND_FUNCTION(name) ZEND_NAMED_FUNCTION(ZEND_FN(name))
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
69 #define ZEND_METHOD(classname, name) ZEND_NAMED_FUNCTION(ZEND_MN(classname##_##name))
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
70
1c2512d - Add fn_flag ZEND_ACC_ALIAS
Marcus Boerger authored Aug 24, 2003
71 #define ZEND_FENTRY(zend_name, name, arg_info, flags) { #zend_name, name, arg_info, (zend_uint) (sizeof(arg_info)/sizeof(struct _zend_arg_info)-1), flags },
72
1e19ee8 @bjori - Fixed incorrect function names on FreeBSD where inet_pton() was named
bjori authored Dec 20, 2006
73 #define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags) { zend_name, name, arg_info, (zend_uint) (sizeof(arg_info)/sizeof(struct _zend_arg_info)-1), flags },
74 #define ZEND_RAW_NAMED_FE(zend_name, name, arg_info) ZEND_RAW_FENTRY(#zend_name, name, arg_info, 0)
75
1c2512d - Add fn_flag ZEND_ACC_ALIAS
Marcus Boerger authored Aug 24, 2003
76 #define ZEND_NAMED_FE(zend_name, name, arg_info) ZEND_FENTRY(zend_name, name, arg_info, 0)
77 #define ZEND_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0)
941b065 - MFH: Function deprecation flag
Marcus Boerger authored Feb 25, 2006
78 #define ZEND_DEP_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED)
cec053f Don't identify alias'ed functions
Marcus Boerger authored Aug 24, 2003
79 #define ZEND_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, 0)
941b065 - MFH: Function deprecation flag
Marcus Boerger authored Feb 25, 2006
80 #define ZEND_DEP_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED)
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
81 #define ZEND_NAMED_ME(zend_name, name, arg_info, flags) ZEND_FENTRY(zend_name, name, arg_info, flags)
82 #define ZEND_ME(classname, name, arg_info, flags) ZEND_FENTRY(name, ZEND_MN(classname##_##name), arg_info, flags)
1c2512d - Add fn_flag ZEND_ACC_ALIAS
Marcus Boerger authored Aug 24, 2003
83 #define ZEND_ABSTRACT_ME(classname, name, arg_info) ZEND_FENTRY(name, NULL, arg_info, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
33cdc9e Fix order of macro parameter (synch with other macros)
Marcus Boerger authored Apr 12, 2004
84 #define ZEND_MALIAS(classname, name, alias, arg_info, flags) \
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
85 ZEND_FENTRY(name, ZEND_MN(classname##_##alias), arg_info, flags)
86 #define ZEND_ME_MAPPING(name, func_name, arg_types, flags) ZEND_NAMED_ME(name, ZEND_FN(func_name), arg_types, flags)
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
87
907fa66 Added API to use namesapces in internal extensions
Dmitry Stogov authored May 12, 2008
88 #define ZEND_NS_FENTRY(ns, zend_name, name, arg_info, flags) ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, #zend_name), name, arg_info, flags)
89
90 #define ZEND_NS_RAW_FENTRY(ns, zend_name, name, arg_info, flags) ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, zend_name), name, arg_info, flags)
91 #define ZEND_NS_RAW_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_RAW_FENTRY(ns, #zend_name, name, arg_info, 0)
92
f48cab0 - Fixed bug #48971 (Missing ZEND_NS_NAMED_FE macro)
Jani Taskinen authored Jul 28, 2009
93 #define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_FENTRY(ns, #zend_name, name, arg_info, 0)
907fa66 Added API to use namesapces in internal extensions
Dmitry Stogov authored May 12, 2008
94 #define ZEND_NS_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, 0)
95 #define ZEND_NS_DEP_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED)
96 #define ZEND_NS_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, 0)
97 #define ZEND_NS_DEP_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED)
98
f1f2a64 @felipensp - Added new macro to be used in the end of zend_function_entry declar…
felipensp authored Jul 25, 2011
99 #define ZEND_FE_END { NULL, NULL, NULL, 0, 0 }
100
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
101 #define ZEND_ARG_INFO(pass_by_ref, name) { #name, sizeof(#name)-1, NULL, 0, 0, 0, pass_by_ref},
102 #define ZEND_ARG_PASS_INFO(pass_by_ref) { NULL, 0, NULL, 0, 0, 0, pass_by_ref},
e186189 @smalyshev scalar types cleanup
smalyshev authored Jun 3, 2011
103 #define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, sizeof(#name)-1, #classname, sizeof(#classname)-1, IS_OBJECT, allow_null, pass_by_ref},
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
104 #define ZEND_ARG_ARRAY_INFO(pass_by_ref, name, allow_null) { #name, sizeof(#name)-1, NULL, 0, IS_ARRAY, allow_null, pass_by_ref},
105 #define ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, sizeof(#name)-1, NULL, 0, type_hint, allow_null, pass_by_ref},
7086634 @zsuraski - Improve ARG_INFO() macros to support supplying required_num_args
zsuraski authored Feb 25, 2004
106 #define ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, return_reference, required_num_args) \
fc2fb50 @felipensp - MFH: Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro
felipensp authored Nov 17, 2008
107 static const zend_arg_info name[] = { \
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
108 { NULL, 0, NULL, required_num_args, 0, return_reference, pass_rest_by_reference},
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
109 #define ZEND_BEGIN_ARG_INFO(name, pass_rest_by_reference) \
aedbdb0 Allowed return by refrence from internal functions
Dmitry Stogov authored Jun 16, 2005
110 ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, ZEND_RETURN_VALUE, -1)
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
111 #define ZEND_END_ARG_INFO() };
342c6e0 @zsuraski Whatnot:
zsuraski authored Apr 18, 1999
112
8b6f848 @andigutmans - Merge from Engine 1
andigutmans authored Aug 10, 2001
113 /* Name macros */
114 #define ZEND_MODULE_STARTUP_N(module) zm_startup_##module
115 #define ZEND_MODULE_SHUTDOWN_N(module) zm_shutdown_##module
116 #define ZEND_MODULE_ACTIVATE_N(module) zm_activate_##module
117 #define ZEND_MODULE_DEACTIVATE_N(module) zm_deactivate_##module
6535933 - Replaced the exec_finished hook by the zend_post_deactive hook for
Derick Rethans authored Mar 16, 2004
118 #define ZEND_MODULE_POST_ZEND_DEACTIVATE_N(module) zm_post_zend_deactivate_##module
8b6f848 @andigutmans - Merge from Engine 1
andigutmans authored Aug 10, 2001
119 #define ZEND_MODULE_INFO_N(module) zm_info_##module
ada4e50 MFH: Added automatic module globals management.
Dmitry Stogov authored Jun 15, 2006
120 #define ZEND_MODULE_GLOBALS_CTOR_N(module) zm_globals_ctor_##module
121 #define ZEND_MODULE_GLOBALS_DTOR_N(module) zm_globals_dtor_##module
342c6e0 @zsuraski Whatnot:
zsuraski authored Apr 18, 1999
122
8b6f848 @andigutmans - Merge from Engine 1
andigutmans authored Aug 10, 2001
123 /* Declaration macros */
124 #define ZEND_MODULE_STARTUP_D(module) int ZEND_MODULE_STARTUP_N(module)(INIT_FUNC_ARGS)
125 #define ZEND_MODULE_SHUTDOWN_D(module) int ZEND_MODULE_SHUTDOWN_N(module)(SHUTDOWN_FUNC_ARGS)
126 #define ZEND_MODULE_ACTIVATE_D(module) int ZEND_MODULE_ACTIVATE_N(module)(INIT_FUNC_ARGS)
127 #define ZEND_MODULE_DEACTIVATE_D(module) int ZEND_MODULE_DEACTIVATE_N(module)(SHUTDOWN_FUNC_ARGS)
6535933 - Replaced the exec_finished hook by the zend_post_deactive hook for
Derick Rethans authored Mar 16, 2004
128 #define ZEND_MODULE_POST_ZEND_DEACTIVATE_D(module) int ZEND_MODULE_POST_ZEND_DEACTIVATE_N(module)(void)
8b6f848 @andigutmans - Merge from Engine 1
andigutmans authored Aug 10, 2001
129 #define ZEND_MODULE_INFO_D(module) void ZEND_MODULE_INFO_N(module)(ZEND_MODULE_INFO_FUNC_ARGS)
ada4e50 MFH: Added automatic module globals management.
Dmitry Stogov authored Jun 15, 2006
130 #define ZEND_MODULE_GLOBALS_CTOR_D(module) void ZEND_MODULE_GLOBALS_CTOR_N(module)(zend_##module##_globals *module##_globals TSRMLS_DC)
131 #define ZEND_MODULE_GLOBALS_DTOR_D(module) void ZEND_MODULE_GLOBALS_DTOR_N(module)(zend_##module##_globals *module##_globals TSRMLS_DC)
342c6e0 @zsuraski Whatnot:
zsuraski authored Apr 18, 1999
132
0b6d923 Add ZEND_GET_MODULE(name). This is a short-cut for the common
Sascha Schumann authored May 2, 2000
133 #define ZEND_GET_MODULE(name) \
cb71ac0 C++ compile fixes
Hartmut Holzgraefe authored May 20, 2003
134 BEGIN_EXTERN_C()\
135 ZEND_DLEXPORT zend_module_entry *get_module(void) { return &name##_module_entry; }\
136 END_EXTERN_C()
0d21940 @zsuraski Generalize some common thread-safety stuff
zsuraski authored Apr 1, 2000
137
138 #define ZEND_BEGIN_MODULE_GLOBALS(module_name) \
139 typedef struct _zend_##module_name##_globals {
140 #define ZEND_END_MODULE_GLOBALS(module_name) \
141 } zend_##module_name##_globals;
142
143 #ifdef ZTS
144
145 #define ZEND_DECLARE_MODULE_GLOBALS(module_name) \
02af513 @andigutmans - Patch from Jason Greene.
andigutmans authored Apr 19, 2001
146 ts_rsrc_id module_name##_globals_id;
147 #define ZEND_EXTERN_MODULE_GLOBALS(module_name) \
148 extern ts_rsrc_id module_name##_globals_id;
0d21940 @zsuraski Generalize some common thread-safety stuff
zsuraski authored Apr 1, 2000
149 #define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \
2c254ba @zsuraski Get rid of ELS_*(), and use TSRMLS_*() instead.
zsuraski authored Jul 27, 2001
150 ts_allocate_id(&module_name##_globals_id, sizeof(zend_##module_name##_globals), (ts_allocate_ctor) globals_ctor, (ts_allocate_dtor) globals_dtor);
0d21940 @zsuraski Generalize some common thread-safety stuff
zsuraski authored Apr 1, 2000
151
152 #else
153
154 #define ZEND_DECLARE_MODULE_GLOBALS(module_name) \
02af513 @andigutmans - Patch from Jason Greene.
andigutmans authored Apr 19, 2001
155 zend_##module_name##_globals module_name##_globals;
156 #define ZEND_EXTERN_MODULE_GLOBALS(module_name) \
157 extern zend_##module_name##_globals module_name##_globals;
0d21940 @zsuraski Generalize some common thread-safety stuff
zsuraski authored Apr 1, 2000
158 #define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \
159 globals_ctor(&module_name##_globals);
160
161 #endif
162
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
163 #define INIT_CLASS_ENTRY(class_container, class_name, functions) \
164 INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, NULL, NULL, NULL)
741b816 @zsuraski * Support getThis() for internal functions.
zsuraski authored May 28, 1999
165
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
166 #define INIT_CLASS_ENTRY_EX(class_container, class_name, class_name_len, functions) \
167 INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, class_name_len, functions, NULL, NULL, NULL, NULL, NULL)
168
169 #define INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, class_name_len, functions, handle_fcall, handle_propget, handle_propset, handle_propunset, handle_propisset) \
741b816 @zsuraski * Support getThis() for internal functions.
zsuraski authored May 28, 1999
170 { \
aaa2f1c marked char pointer arguments as const in lots of
Hartmut Holzgraefe authored Oct 14, 2010
171 const char *cl_name = class_name; \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
172 int _len = class_name_len; \
c6c97db @felipensp - Fix warning because the comparsion with literal (e.g. INIT_CLASS_EN…
felipensp authored Aug 8, 2010
173 class_container.name = zend_new_interned_string(cl_name, _len+1, 0 TSRMLS_CC); \
174 if (class_container.name == cl_name) { \
175 class_container.name = zend_strndup(cl_name, _len); \
3cf5ab9 Use interned strings for class names
Dmitry Stogov authored Aug 5, 2010
176 } \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
177 class_container.name_length = _len; \
2eccd95 @andigutmans - Add some initializations
andigutmans authored Nov 3, 2001
178 class_container.constructor = NULL; \
73b159e @andigutmans - Experimental support for destructors. We need to see if destructors
andigutmans authored Dec 27, 2001
179 class_container.destructor = NULL; \
29ea3da @andigutmans - Pretty much finish _clone() support
andigutmans authored Dec 26, 2001
180 class_container.clone = NULL; \
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
181 class_container.serialize = NULL; \
182 class_container.unserialize = NULL; \
183 class_container.create_object = NULL; \
3c62b3b Expand Interface C API.
Marcus Boerger authored Oct 22, 2003
184 class_container.interface_gets_implemented = NULL; \
72d0454 Added support for __callstatic() magic method (missing part). (Sara)
Dmitry Stogov authored Sep 29, 2007
185 class_container.get_static_method = NULL; \
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
186 class_container.__call = handle_fcall; \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
187 class_container.__callstatic = NULL; \
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
188 class_container.__tostring = NULL; \
189 class_container.__get = handle_propget; \
190 class_container.__set = handle_propset; \
191 class_container.__unset = handle_propunset; \
192 class_container.__isset = handle_propisset; \
193 class_container.serialize_func = NULL; \
194 class_container.unserialize_func = NULL; \
195 class_container.serialize = NULL; \
196 class_container.unserialize = NULL; \
197 class_container.parent = NULL; \
198 class_container.num_interfaces = 0; \
fdb6077 @felipensp - Missing traits data initialization for internal classes (causing Re…
felipensp authored Aug 14, 2010
199 class_container.traits = NULL; \
200 class_container.num_traits = 0; \
201 class_container.trait_aliases = NULL; \
202 class_container.trait_precedences = NULL; \
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
203 class_container.interfaces = NULL; \
204 class_container.get_iterator = NULL; \
205 class_container.iterator_funcs.funcs = NULL; \
f2df6a4 - Improved memory usage
Dmitry Stogov authored Sep 15, 2010
206 class_container.info.internal.module = NULL; \
207 class_container.info.internal.builtin_functions = functions; \
741b816 @zsuraski * Support getThis() for internal functions.
zsuraski authored May 28, 1999
208 }
209
345e025 Fixed bug #33512 (Add missing support for isset()/unset() overloading…
Dmitry Stogov authored Jul 7, 2005
210 #define INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, handle_fcall, handle_propget, handle_propset) \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
211 INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, sizeof(class_name)-1, functions, handle_fcall, handle_propget, handle_propset, NULL, NULL)
345e025 Fixed bug #33512 (Add missing support for isset()/unset() overloading…
Dmitry Stogov authored Jul 7, 2005
212
907fa66 Added API to use namesapces in internal extensions
Dmitry Stogov authored May 12, 2008
213 #define INIT_NS_CLASS_ENTRY(class_container, ns, class_name, functions) \
214 INIT_CLASS_ENTRY(class_container, ZEND_NS_NAME(ns, class_name), functions)
215 #define INIT_OVERLOADED_NS_CLASS_ENTRY_EX(class_container, ns, class_name, functions, handle_fcall, handle_propget, handle_propset, handle_propunset, handle_propisset) \
216 INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, ZEND_NS_NAME(ns, class_name), sizeof(ZEND_NS_NAME(ns, class_name))-1, functions, handle_fcall, handle_propget, handle_propset, handle_propunset, handle_propisset)
217 #define INIT_OVERLOADED_NS_CLASS_ENTRY(class_container, ns, class_name, functions, handle_fcall, handle_propget, handle_propset) \
218 INIT_OVERLOADED_CLASS_ENTRY(class_container, ZEND_NS_NAME(ns, class_name), functions, handle_fcall, handle_propget, handle_propset)
219
8768ab9 Fixed bug #34729 (Crash in ZTS mode under Apache)
Dmitry Stogov authored Dec 1, 2005
220 #ifdef ZTS
f23e857 Fixed ZTS build
Dmitry Stogov authored May 24, 2010
221 # define CE_STATIC_MEMBERS(ce) (((ce)->type==ZEND_USER_CLASS)?(ce)->static_members_table:CG(static_members_table)[(zend_intptr_t)(ce)->static_members_table])
8768ab9 Fixed bug #34729 (Crash in ZTS mode under Apache)
Dmitry Stogov authored Dec 1, 2005
222 #else
c5237d8 Added caches to eliminate repeatable run-time bindings of functions, …
Dmitry Stogov authored May 24, 2010
223 # define CE_STATIC_MEMBERS(ce) ((ce)->static_members_table)
8768ab9 Fixed bug #34729 (Crash in ZTS mode under Apache)
Dmitry Stogov authored Dec 1, 2005
224 #endif
225
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
226 #define ZEND_FCI_INITIALIZED(fci) ((fci).size != 0)
227
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
228 int zend_next_free_module(void);
229
1727c6a more EXTERN_C wrapping of ZEND_API prototypes
Hartmut Holzgraefe authored Feb 20, 2004
230 BEGIN_EXTERN_C()
f77e6a4 @zsuraski Generalize macros
zsuraski authored Feb 19, 2000
231 ZEND_API int zend_get_parameters(int ht, int param_count, ...);
11e5d2f @zsuraski Get rid of more TSRMLS_FETCH's
zsuraski authored Jul 30, 2001
232 ZEND_API int _zend_get_parameters_array(int ht, int param_count, zval **argument_array TSRMLS_DC);
e59bfcf @smalyshev deprecate zend_get_parameters_ex
smalyshev authored Jun 27, 2008
233 ZEND_API ZEND_ATTRIBUTE_DEPRECATED int zend_get_parameters_ex(int param_count, ...);
11e5d2f @zsuraski Get rid of more TSRMLS_FETCH's
zsuraski authored Jul 30, 2001
234 ZEND_API int _zend_get_parameters_array_ex(int param_count, zval ***argument_array TSRMLS_DC);
235
e39f3f3 Simplify/Optmize magic method calls (__get/__set/__call/__clone/__des…
Marcus Boerger authored Sep 28, 2004
236 /* internal function to efficiently copy parameters when executing __call() */
237 ZEND_API int zend_copy_parameters_array(int param_count, zval *argument_array TSRMLS_DC);
238
11e5d2f @zsuraski Get rid of more TSRMLS_FETCH's
zsuraski authored Jul 30, 2001
239 #define zend_get_parameters_array(ht, param_count, argument_array) \
240 _zend_get_parameters_array(ht, param_count, argument_array TSRMLS_CC)
241 #define zend_get_parameters_array_ex(param_count, argument_array) \
242 _zend_get_parameters_array_ex(param_count, argument_array TSRMLS_CC)
cc2b17d @felipensp MFH: Added new macro for check void parameters.
felipensp authored Mar 10, 2008
243 #define zend_parse_parameters_none() \
244 zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "")
58f8805 Adding new parameter parsing API.
Andrei Zmievski authored Jul 9, 2001
245
246 /* Parameter parsing API -- andrei */
247
248 #define ZEND_PARSE_PARAMS_QUIET 1<<1
aaa2f1c marked char pointer arguments as const in lots of
Hartmut Holzgraefe authored Oct 14, 2010
249 ZEND_API int zend_parse_parameters(int num_args TSRMLS_DC, const char *type_spec, ...);
250 ZEND_API int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, const char *type_spec, ...);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
251 ZEND_API char *zend_zval_type_name(const zval *arg);
58f8805 Adding new parameter parsing API.
Andrei Zmievski authored Jul 9, 2001
252
aaa2f1c marked char pointer arguments as const in lots of
Hartmut Holzgraefe authored Oct 14, 2010
253 ZEND_API int zend_parse_method_parameters(int num_args TSRMLS_DC, zval *this_ptr, const char *type_spec, ...);
254 ZEND_API int zend_parse_method_parameters_ex(int flags, int num_args TSRMLS_DC, zval *this_ptr, const char *type_spec, ...);
c4528f8 extend the parameter parsing API by two functions
Harald Radi authored Feb 2, 2003
255
b525549 @zsuraski More TSRMLS_FETCH work, and get rid of redundant ParametersPassedByRef
zsuraski authored Jul 30, 2001
256 /* End of parameter parsing API -- andrei */
39f9487 @andigutmans -Tiny patches
andigutmans authored Apr 14, 1999
257
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
258 ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_function_entry *functions, HashTable *function_table, int type TSRMLS_DC);
259 ZEND_API void zend_unregister_functions(const zend_function_entry *functions, int count, HashTable *function_table TSRMLS_DC);
2ca2dc0 Restored old behavior of zend_statup_module()
Dmitry Stogov authored Jun 30, 2005
260 ZEND_API int zend_startup_module(zend_module_entry *module_entry);
70bd938 Fixed bug in new module statrup mechanism
Dmitry Stogov authored Jul 18, 2005
261 ZEND_API zend_module_entry* zend_register_internal_module(zend_module_entry *module_entry TSRMLS_DC);
262 ZEND_API zend_module_entry* zend_register_module_ex(zend_module_entry *module TSRMLS_DC);
2ca2dc0 Restored old behavior of zend_statup_module()
Dmitry Stogov authored Jun 30, 2005
263 ZEND_API int zend_startup_module_ex(zend_module_entry *module TSRMLS_DC);
c0c7a9f Improved PHP extension loading mechanism with support for module depe…
Dmitry Stogov authored Jun 17, 2005
264 ZEND_API int zend_startup_modules(TSRMLS_D);
3690ce3 zend_collect_module_handlers() has to be called after zend_extensions…
Dmitry Stogov authored Oct 15, 2010
265 ZEND_API void zend_collect_module_handlers(TSRMLS_D);
1a1178a eliminated unnecessary iterations during request startup/shutdown
Dmitry Stogov authored Jul 6, 2010
266 ZEND_API void zend_destroy_modules(void);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
267 ZEND_API void zend_check_magic_method_implementation(const zend_class_entry *ce, const zend_function *fptr, int error_type TSRMLS_DC);
eb0e694 @andigutmans - Andrei, this is for you!
andigutmans authored Jun 9, 2000
268
b577038 @zsuraski Avoid TSRMLS_FETCH()'s (still lots of work left)
zsuraski authored Jul 30, 2001
269 ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_entry TSRMLS_DC);
270 ZEND_API zend_class_entry *zend_register_internal_class_ex(zend_class_entry *class_entry, zend_class_entry *parent_ce, char *parent_name TSRMLS_DC);
3c62b3b Expand Interface C API.
Marcus Boerger authored Oct 22, 2003
271 ZEND_API zend_class_entry *zend_register_internal_interface(zend_class_entry *orig_class_entry TSRMLS_DC);
4073a08 Add oo support function zend_class_implements()
Marcus Boerger authored Oct 15, 2003
272 ZEND_API void zend_class_implements(zend_class_entry *class_entry TSRMLS_DC, int num_interfaces, ...);
eb0e694 @andigutmans - Andrei, this is for you!
andigutmans authored Jun 9, 2000
273
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
274 ZEND_API int zend_register_class_alias_ex(const char *name, int name_len, zend_class_entry *ce TSRMLS_DC);
907fa66 Added API to use namesapces in internal extensions
Dmitry Stogov authored May 12, 2008
275
276 #define zend_register_class_alias(name, ce) \
277 zend_register_class_alias_ex(name, sizeof(name)-1, ce TSRMLS_DC)
278 #define zend_register_ns_class_alias(ns, name, ce) \
279 zend_register_class_alias_ex(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, ce TSRMLS_DC)
280
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
281 ZEND_API int zend_disable_function(char *function_name, uint function_name_length TSRMLS_DC);
a700180 commiting zend_disable_class patch for George:
Harald Radi authored Mar 3, 2003
282 ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
283
4187439 @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 30, 2001
284 ZEND_API void zend_wrong_param_count(TSRMLS_D);
c81db6b Fixed bug #29210 (Function: is_callable - no support for private and …
Dmitry Stogov authored Apr 27, 2005
285
286 #define IS_CALLABLE_CHECK_SYNTAX_ONLY (1<<0)
287 #define IS_CALLABLE_CHECK_NO_ACCESS (1<<1)
53e5260 - Add convenience function zend_is_callable_ex() and base zend_is_cal…
Marcus Boerger authored Jul 28, 2005
288 #define IS_CALLABLE_CHECK_IS_STATIC (1<<2)
af05ce0 Fixed is_callable/call_user_func mess that had done different things …
Dmitry Stogov authored Jul 26, 2008
289 #define IS_CALLABLE_CHECK_SILENT (1<<3)
c81db6b Fixed bug #29210 (Function: is_callable - no support for private and …
Dmitry Stogov authored Apr 27, 2005
290
0cd997d - Simplify and synch is_callable_ex() with actual execution code
Marcus Boerger authored Dec 16, 2005
291 #define IS_CALLABLE_STRICT (IS_CALLABLE_CHECK_IS_STATIC)
292
7d4fd3f Fixed bug #46409 (__invoke method called outside of object context wh…
Dmitry Stogov authored Nov 27, 2008
293 ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint check_flags, char **callable_name, int *callable_name_len, zend_fcall_info_cache *fcc, char **error TSRMLS_DC);
e304515 @felipensp - MFH: Added parameter TSRMLS_DC in zend_is_callable()
felipensp authored Aug 2, 2008
294 ZEND_API zend_bool zend_is_callable(zval *callable, uint check_flags, char **callable_name TSRMLS_DC);
26bfe3f Add zend_make_callable() which allows to make zval's callable zval's.
Marcus Boerger authored Oct 25, 2003
295 ZEND_API zend_bool zend_make_callable(zval *callable, char **callable_name TSRMLS_DC);
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
296 ZEND_API const char *zend_get_module_version(const char *module_name);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
297 ZEND_API int zend_get_module_started(const char *module_name);
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
298 ZEND_API int zend_declare_property(zend_class_entry *ce, const char *name, int name_length, zval *property, int access_type TSRMLS_DC);
299 ZEND_API int zend_declare_property_ex(zend_class_entry *ce, const char *name, int name_length, zval *property, int access_type, const char *doc_comment, int doc_comment_len TSRMLS_DC);
300 ZEND_API int zend_declare_property_null(zend_class_entry *ce, const char *name, int name_length, int access_type TSRMLS_DC);
301 ZEND_API int zend_declare_property_bool(zend_class_entry *ce, const char *name, int name_length, long value, int access_type TSRMLS_DC);
302 ZEND_API int zend_declare_property_long(zend_class_entry *ce, const char *name, int name_length, long value, int access_type TSRMLS_DC);
303 ZEND_API int zend_declare_property_double(zend_class_entry *ce, const char *name, int name_length, double value, int access_type TSRMLS_DC);
304 ZEND_API int zend_declare_property_string(zend_class_entry *ce, const char *name, int name_length, const char *value, int access_type TSRMLS_DC);
305 ZEND_API int zend_declare_property_stringl(zend_class_entry *ce, const char *name, int name_length, const char *value, int value_len, int access_type TSRMLS_DC);
1343385 @zsuraski Rework zend_do_declare_property and related code into one code base
zsuraski authored Jul 7, 2003
306
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
307 ZEND_API int zend_declare_class_constant(zend_class_entry *ce, const char *name, size_t name_length, zval *value TSRMLS_DC);
308 ZEND_API int zend_declare_class_constant_null(zend_class_entry *ce, const char *name, size_t name_length TSRMLS_DC);
309 ZEND_API int zend_declare_class_constant_long(zend_class_entry *ce, const char *name, size_t name_length, long value TSRMLS_DC);
310 ZEND_API int zend_declare_class_constant_bool(zend_class_entry *ce, const char *name, size_t name_length, zend_bool value TSRMLS_DC);
311 ZEND_API int zend_declare_class_constant_double(zend_class_entry *ce, const char *name, size_t name_length, double value TSRMLS_DC);
312 ZEND_API int zend_declare_class_constant_stringl(zend_class_entry *ce, const char *name, size_t name_length, const char *value, size_t value_length TSRMLS_DC);
313 ZEND_API int zend_declare_class_constant_string(zend_class_entry *ce, const char *name, size_t name_length, const char *value TSRMLS_DC);
248345d Support for class constants and static members for internal classes
Dmitry Stogov authored Sep 1, 2005
314
1d5c13b - Fix #31651 (ReflectionClass::getDefaultProperties segfaults with ar…
Marcus Boerger authored Jan 22, 2005
315 ZEND_API void zend_update_class_constants(zend_class_entry *class_type TSRMLS_DC);
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
316 ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, const char *name, int name_length, zval *value TSRMLS_DC);
317 ZEND_API void zend_update_property_null(zend_class_entry *scope, zval *object, const char *name, int name_length TSRMLS_DC);
318 ZEND_API void zend_update_property_bool(zend_class_entry *scope, zval *object, const char *name, int name_length, long value TSRMLS_DC);
319 ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, const char *name, int name_length, long value TSRMLS_DC);
320 ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object, const char *name, int name_length, double value TSRMLS_DC);
321 ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object, const char *name, int name_length, const char *value TSRMLS_DC);
322 ZEND_API void zend_update_property_stringl(zend_class_entry *scope, zval *object, const char *name, int name_length, const char *value, int value_length TSRMLS_DC);
323
324 ZEND_API int zend_update_static_property(zend_class_entry *scope, const char *name, int name_length, zval *value TSRMLS_DC);
325 ZEND_API int zend_update_static_property_null(zend_class_entry *scope, const char *name, int name_length TSRMLS_DC);
326 ZEND_API int zend_update_static_property_bool(zend_class_entry *scope, const char *name, int name_length, long value TSRMLS_DC);
327 ZEND_API int zend_update_static_property_long(zend_class_entry *scope, const char *name, int name_length, long value TSRMLS_DC);
328 ZEND_API int zend_update_static_property_double(zend_class_entry *scope, const char *name, int name_length, double value TSRMLS_DC);
329 ZEND_API int zend_update_static_property_string(zend_class_entry *scope, const char *name, int name_length, const char *value TSRMLS_DC);
330 ZEND_API int zend_update_static_property_stringl(zend_class_entry *scope, const char *name, int name_length, const char *value, int value_length TSRMLS_DC);
331
332 ZEND_API zval *zend_read_property(zend_class_entry *scope, zval *object, const char *name, int name_length, zend_bool silent TSRMLS_DC);
333
334 ZEND_API zval *zend_read_static_property(zend_class_entry *scope, const char *name, int name_length, zend_bool silent TSRMLS_DC);
248345d Support for class constants and static members for internal classes
Dmitry Stogov authored Sep 1, 2005
335
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
336 ZEND_API zend_class_entry *zend_get_class_entry(const zval *zobject TSRMLS_DC);
aaa2f1c marked char pointer arguments as const in lots of
Hartmut Holzgraefe authored Oct 14, 2010
337 ZEND_API int zend_get_object_classname(const zval *object, const char **class_name, zend_uint *class_name_len TSRMLS_DC);
9dd24c6 @tony2001 fix error messages when converting objects to other types
tony2001 authored May 25, 2006
338 ZEND_API char *zend_get_type_by_const(int type);
6ac6cb1 added get_class_entry callback handler to the
Harald Radi authored Apr 22, 2002
339
741b816 @zsuraski * Support getThis() for internal functions.
zsuraski authored May 28, 1999
340 #define getThis() (this_ptr)
341
131d9cb @zsuraski *** empty log message ***
zsuraski authored Apr 1, 2000
342 #define WRONG_PARAM_COUNT ZEND_WRONG_PARAM_COUNT()
343 #define WRONG_PARAM_COUNT_WITH_RETVAL(ret) ZEND_WRONG_PARAM_COUNT_WITH_RETVAL(ret)
a1ad287 @zsuraski - The tree compiles again
zsuraski authored Dec 18, 1999
344 #define ARG_COUNT(dummy) (ht)
345 #define ZEND_NUM_ARGS() (ht)
4187439 @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 30, 2001
346 #define ZEND_WRONG_PARAM_COUNT() { zend_wrong_param_count(TSRMLS_C); return; }
347 #define ZEND_WRONG_PARAM_COUNT_WITH_RETVAL(ret) { zend_wrong_param_count(TSRMLS_C); return ret; }
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
348
80bdd19 @zsuraski Fine tune Andi's patch
zsuraski authored Feb 11, 2000
349 #ifndef ZEND_WIN32
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
350 #define DLEXPORT
351 #endif
352
7da75d8 MFH: Add array_init_size() and use it where array size is known at in…
Matt Wilmas authored May 27, 2008
353 #define array_init(arg) _array_init((arg), 0 ZEND_FILE_LINE_CC)
354 #define array_init_size(arg, size) _array_init((arg), (size) ZEND_FILE_LINE_CC)
fcc0351 @zsuraski TSRMLS_FETCH work
zsuraski authored Aug 5, 2001
355 #define object_init(arg) _object_init((arg) ZEND_FILE_LINE_CC TSRMLS_CC)
356 #define object_init_ex(arg, ce) _object_init_ex((arg), (ce) ZEND_FILE_LINE_CC TSRMLS_CC)
76a7a5b @andigutmans - More work on making objects work
andigutmans authored Aug 11, 2001
357 #define object_and_properties_init(arg, ce, properties) _object_and_properties_init((arg), (ce), (properties) ZEND_FILE_LINE_CC TSRMLS_CC)
7da75d8 MFH: Add array_init_size() and use it where array size is known at in…
Matt Wilmas authored May 27, 2008
358 ZEND_API int _array_init(zval *arg, uint size ZEND_FILE_LINE_DC);
fcc0351 @zsuraski TSRMLS_FETCH work
zsuraski authored Aug 5, 2001
359 ZEND_API int _object_init(zval *arg ZEND_FILE_LINE_DC TSRMLS_DC);
360 ZEND_API int _object_init_ex(zval *arg, zend_class_entry *ce ZEND_FILE_LINE_DC TSRMLS_DC);
76a7a5b @andigutmans - More work on making objects work
andigutmans authored Aug 11, 2001
361 ZEND_API int _object_and_properties_init(zval *arg, zend_class_entry *ce, HashTable *properties ZEND_FILE_LINE_DC TSRMLS_DC);
c5237d8 Added caches to eliminate repeatable run-time bindings of functions, …
Dmitry Stogov authored May 24, 2010
362 ZEND_API void object_properties_init(zend_object *object, zend_class_entry *class_type);
6847fef added add_*_resource() and add_*_bool() functions
Thies C. Arntzen authored Oct 4, 1999
363
047a574 - Add zend_merge_properties() which is designed to serve *_fetch_obje…
Marcus Boerger authored Aug 29, 2003
364 ZEND_API void zend_merge_properties(zval *obj, HashTable *properties, int destroy_ht TSRMLS_DC);
365
6847fef added add_*_resource() and add_*_bool() functions
Thies C. Arntzen authored Oct 4, 1999
366 /* no longer supported */
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
367 ZEND_API int add_assoc_function(zval *arg, const char *key, void (*function_ptr)(INTERNAL_FUNCTION_PARAMETERS));
6847fef added add_*_resource() and add_*_bool() functions
Thies C. Arntzen authored Oct 4, 1999
368
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
369 ZEND_API int add_assoc_long_ex(zval *arg, const char *key, uint key_len, long n);
370 ZEND_API int add_assoc_null_ex(zval *arg, const char *key, uint key_len);
371 ZEND_API int add_assoc_bool_ex(zval *arg, const char *key, uint key_len, int b);
372 ZEND_API int add_assoc_resource_ex(zval *arg, const char *key, uint key_len, int r);
373 ZEND_API int add_assoc_double_ex(zval *arg, const char *key, uint key_len, double d);
374 ZEND_API int add_assoc_string_ex(zval *arg, const char *key, uint key_len, char *str, int duplicate);
375 ZEND_API int add_assoc_stringl_ex(zval *arg, const char *key, uint key_len, char *str, uint length, int duplicate);
376 ZEND_API int add_assoc_zval_ex(zval *arg, const char *key, uint key_len, zval *value);
ef95a34 @andigutmans - Patch from Sterling. Add API calls to add zval's as array indeces/
andigutmans authored Jan 20, 2001
377
378 #define add_assoc_long(__arg, __key, __n) add_assoc_long_ex(__arg, __key, strlen(__key)+1, __n)
0611acb @andigutmans - Change unset() functions to null(). unset() is legacy
andigutmans authored Jan 31, 2001
379 #define add_assoc_null(__arg, __key) add_assoc_null_ex(__arg, __key, strlen(__key) + 1)
ef95a34 @andigutmans - Patch from Sterling. Add API calls to add zval's as array indeces/
andigutmans authored Jan 20, 2001
380 #define add_assoc_bool(__arg, __key, __b) add_assoc_bool_ex(__arg, __key, strlen(__key)+1, __b)
381 #define add_assoc_resource(__arg, __key, __r) add_assoc_resource_ex(__arg, __key, strlen(__key)+1, __r)
382 #define add_assoc_double(__arg, __key, __d) add_assoc_double_ex(__arg, __key, strlen(__key)+1, __d)
383 #define add_assoc_string(__arg, __key, __str, __duplicate) add_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __duplicate)
384 #define add_assoc_stringl(__arg, __key, __str, __length, __duplicate) add_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __duplicate)
385 #define add_assoc_zval(__arg, __key, __value) add_assoc_zval_ex(__arg, __key, strlen(__key)+1, __value)
6847fef added add_*_resource() and add_*_bool() functions
Thies C. Arntzen authored Oct 4, 1999
386
0611acb @andigutmans - Change unset() functions to null(). unset() is legacy
andigutmans authored Jan 31, 2001
387 /* unset() functions are only suported for legacy modules and null() functions should be used */
388 #define add_assoc_unset(__arg, __key) add_assoc_null_ex(__arg, __key, strlen(__key) + 1)
389 #define add_index_unset(__arg, __key) add_index_null(__arg, __key)
390 #define add_next_index_unset(__arg) add_next_index_null(__arg)
391 #define add_property_unset(__arg, __key) add_property_null(__arg, __key)
392
b05b949 Fixed bug #34879 (str_replace, array_map corrupt negative array index…
Dmitry Stogov authored Oct 28, 2005
393 ZEND_API int add_index_long(zval *arg, ulong idx, long n);
394 ZEND_API int add_index_null(zval *arg, ulong idx);
395 ZEND_API int add_index_bool(zval *arg, ulong idx, int b);
396 ZEND_API int add_index_resource(zval *arg, ulong idx, int r);
397 ZEND_API int add_index_double(zval *arg, ulong idx, double d);
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
398 ZEND_API int add_index_string(zval *arg, ulong idx, const char *str, int duplicate);
399 ZEND_API int add_index_stringl(zval *arg, ulong idx, const char *str, uint length, int duplicate);
b05b949 Fixed bug #34879 (str_replace, array_map corrupt negative array index…
Dmitry Stogov authored Oct 28, 2005
400 ZEND_API int add_index_zval(zval *arg, ulong index, zval *value);
6847fef added add_*_resource() and add_*_bool() functions
Thies C. Arntzen authored Oct 4, 1999
401
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
402 ZEND_API int add_next_index_long(zval *arg, long n);
0611acb @andigutmans - Change unset() functions to null(). unset() is legacy
andigutmans authored Jan 31, 2001
403 ZEND_API int add_next_index_null(zval *arg);
6847fef added add_*_resource() and add_*_bool() functions
Thies C. Arntzen authored Oct 4, 1999
404 ZEND_API int add_next_index_bool(zval *arg, int b);
405 ZEND_API int add_next_index_resource(zval *arg, int r);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
406 ZEND_API int add_next_index_double(zval *arg, double d);
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
407 ZEND_API int add_next_index_string(zval *arg, const char *str, int duplicate);
408 ZEND_API int add_next_index_stringl(zval *arg, const char *str, uint length, int duplicate);
ef95a34 @andigutmans - Patch from Sterling. Add API calls to add zval's as array indeces/
andigutmans authored Jan 20, 2001
409 ZEND_API int add_next_index_zval(zval *arg, zval *value);
410
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
411 ZEND_API int add_get_assoc_string_ex(zval *arg, const char *key, uint key_len, const char *str, void **dest, int duplicate);
412 ZEND_API int add_get_assoc_stringl_ex(zval *arg, const char *key, uint key_len, const char *str, uint length, void **dest, int duplicate);
ef95a34 @andigutmans - Patch from Sterling. Add API calls to add zval's as array indeces/
andigutmans authored Jan 20, 2001
413
414 #define add_get_assoc_string(__arg, __key, __str, __dest, __duplicate) add_get_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __dest, __duplicate)
415 #define add_get_assoc_stringl(__arg, __key, __str, __length, __dest, __duplicate) add_get_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __dest, __duplicate)
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
416
b05b949 Fixed bug #34879 (str_replace, array_map corrupt negative array index…
Dmitry Stogov authored Oct 28, 2005
417 ZEND_API int add_get_index_long(zval *arg, ulong idx, long l, void **dest);
418 ZEND_API int add_get_index_double(zval *arg, ulong idx, double d, void **dest);
6c810b0 Improved memory usage by movig constants to read only memory. (Dmitry…
Dmitry Stogov authored Sep 27, 2007
419 ZEND_API int add_get_index_string(zval *arg, ulong idx, const char *str, void **dest, int duplicate);
420 ZEND_API int add_get_index_stringl(zval *arg, ulong idx, const char *str, uint length, void **dest, int duplicate);
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 ZEND_API int add_property_long_ex(zval *arg, const char *key, uint key_len, long l TSRMLS_DC);
423 ZEND_API int add_property_null_ex(zval *arg, const char *key, uint key_len TSRMLS_DC);
424 ZEND_API int add_property_bool_ex(zval *arg, const char *key, uint key_len, int b TSRMLS_DC);
425 ZEND_API int add_property_resource_ex(zval *arg, const char *key, uint key_len, long r TSRMLS_DC);
426 ZEND_API int add_property_double_ex(zval *arg, const char *key, uint key_len, double d TSRMLS_DC);
eb7e848 @johannes spread some more const
johannes authored Apr 28, 2010
427 ZEND_API int add_property_string_ex(zval *arg, const char *key, uint key_len, const char *str, int duplicate TSRMLS_DC);
428 ZEND_API int add_property_stringl_ex(zval *arg, const char *key, uint key_len, const char *str, uint length, int duplicate TSRMLS_DC);
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
429 ZEND_API int add_property_zval_ex(zval *arg, const char *key, uint key_len, zval *value TSRMLS_DC);
eccc536 @smalyshev Make add_property_ functions work via write_property handler
smalyshev authored Jan 14, 2003
430
431 #define add_property_long(__arg, __key, __n) add_property_long_ex(__arg, __key, strlen(__key)+1, __n TSRMLS_CC)
432 #define add_property_null(__arg, __key) add_property_null_ex(__arg, __key, strlen(__key) + 1 TSRMLS_CC)
433 #define add_property_bool(__arg, __key, __b) add_property_bool_ex(__arg, __key, strlen(__key)+1, __b TSRMLS_CC)
434 #define add_property_resource(__arg, __key, __r) add_property_resource_ex(__arg, __key, strlen(__key)+1, __r TSRMLS_CC)
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
435 #define add_property_double(__arg, __key, __d) add_property_double_ex(__arg, __key, strlen(__key)+1, __d TSRMLS_CC)
eccc536 @smalyshev Make add_property_ functions work via write_property handler
smalyshev authored Jan 14, 2003
436 #define add_property_string(__arg, __key, __str, __duplicate) add_property_string_ex(__arg, __key, strlen(__key)+1, __str, __duplicate TSRMLS_CC)
437 #define add_property_stringl(__arg, __key, __str, __length, __duplicate) add_property_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __duplicate TSRMLS_CC)
438 #define add_property_zval(__arg, __key, __value) add_property_zval_ex(__arg, __key, strlen(__key)+1, __value TSRMLS_CC)
ef95a34 @andigutmans - Patch from Sterling. Add API calls to add zval's as array indeces/
andigutmans authored Jan 20, 2001
439
92b4013 @zsuraski Try to put an end to the endless number of call_user_function variants.
zsuraski authored Aug 5, 2003
440
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
441 ZEND_API int call_user_function(HashTable *function_table, zval **object_pp, zval *function_name, zval *retval_ptr, zend_uint param_count, zval *params[] TSRMLS_DC);
442 ZEND_API int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *function_name, zval **retval_ptr_ptr, zend_uint param_count, zval **params[], int no_separation, HashTable *symbol_table TSRMLS_DC);
92b4013 @zsuraski Try to put an end to the endless number of call_user_function variants.
zsuraski authored Aug 5, 2003
443
f87d453 @nunoplopes mark empty_fcall_info and empty_fcall_info_cache as constant. a few l…
nunoplopes authored Aug 12, 2008
444 ZEND_API extern const zend_fcall_info empty_fcall_info;
445 ZEND_API extern const zend_fcall_info_cache empty_fcall_info_cache;
92b4013 @zsuraski Try to put an end to the endless number of call_user_function variants.
zsuraski authored Aug 5, 2003
446
64c353a - MFH zend_fcall_info_*() and parameter parsing option 'f'
Marcus Boerger authored Jun 7, 2006
447 /** Build zend_call_info/cache from a zval*
448 *
449 * Caller is responsible to provide a return value, otherwise the we will crash.
450 * fci->retval_ptr_ptr = NULL;
451 * In order to pass parameters the following members need to be set:
452 * fci->param_count = 0;
453 * fci->params = NULL;
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
454 * The callable_name argument may be NULL.
e8a8acd [DOC]
Marcus Boerger authored Feb 1, 2008
455 * Set check_flags to IS_CALLABLE_STRICT for every new usage!
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
456 */
e8a8acd [DOC]
Marcus Boerger authored Feb 1, 2008
457 ZEND_API int zend_fcall_info_init(zval *callable, uint check_flags, zend_fcall_info *fci, zend_fcall_info_cache *fcc, char **callable_name, char **error TSRMLS_DC);
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
458
459 /** Clear argumens connected with zend_fcall_info *fci
460 * If free_mem is not zero then the params array gets free'd as well
461 */
462 ZEND_API void zend_fcall_info_args_clear(zend_fcall_info *fci, int free_mem);
463
464 /** Save current arguments from zend_fcall_info *fci
465 * params array will be set to NULL
466 */
467 ZEND_API void zend_fcall_info_args_save(zend_fcall_info *fci, int *param_count, zval ****params);
468
469 /** Free arguments connected with zend_fcall_info *fci andset back saved ones.
64c353a - MFH zend_fcall_info_*() and parameter parsing option 'f'
Marcus Boerger authored Jun 7, 2006
470 */
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
471 ZEND_API void zend_fcall_info_args_restore(zend_fcall_info *fci, int param_count, zval ***params);
64c353a - MFH zend_fcall_info_*() and parameter parsing option 'f'
Marcus Boerger authored Jun 7, 2006
472
473 /** Set or clear the arguments in the zend_call_info struct taking care of
474 * refcount. If args is NULL and arguments are set then those are cleared.
475 */
476 ZEND_API int zend_fcall_info_args(zend_fcall_info *fci, zval *args TSRMLS_DC);
477
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
478 /** Set arguments in the zend_fcall_info struct taking care of refcount.
479 * If argc is 0 the arguments which are set will be cleared, else pass
480 * a variable amount of zval** arguments.
481 */
482 ZEND_API int zend_fcall_info_argp(zend_fcall_info *fci TSRMLS_DC, int argc, zval ***argv);
483
484 /** Set arguments in the zend_fcall_info struct taking care of refcount.
485 * If argc is 0 the arguments which are set will be cleared, else pass
486 * a variable amount of zval** arguments.
487 */
488 ZEND_API int zend_fcall_info_argv(zend_fcall_info *fci TSRMLS_DC, int argc, va_list *argv);
489
490 /** Set arguments in the zend_fcall_info struct taking care of refcount.
491 * If argc is 0 the arguments which are set will be cleared, else pass
492 * a variable amount of zval** arguments.
493 */
494 ZEND_API int zend_fcall_info_argn(zend_fcall_info *fci TSRMLS_DC, int argc, ...);
495
64c353a - MFH zend_fcall_info_*() and parameter parsing option 'f'
Marcus Boerger authored Jun 7, 2006
496 /** Call a function using information created by zend_fcall_info_init()/args().
497 * If args is given then those replace the arguement info in fci is temporarily.
498 */
499 ZEND_API int zend_fcall_info_call(zend_fcall_info *fci, zend_fcall_info_cache *fcc, zval **retval, zval *args TSRMLS_DC);
500
92b4013 @zsuraski Try to put an end to the endless number of call_user_function variants.
zsuraski authored Aug 5, 2003
501 ZEND_API int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TSRMLS_DC);
502
cf7384a @felipensp - MFH: Constness (Added const qualifier to several function parameters)
felipensp authored Aug 12, 2008
503 ZEND_API int zend_set_hash_symbol(zval *symbol, const char *name, int name_length, zend_bool is_ref, int num_symbol_tables, ...);
f962a35 Added zend_set_hash_symbol() function.
Andrei Zmievski authored Dec 4, 1999
504
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
505 ZEND_API void zend_delete_variable(zend_execute_data *ex, HashTable *ht, const char *name, int name_len, ulong hash_value TSRMLS_DC);
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
506
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
507 ZEND_API int zend_delete_global_variable(const char *name, int name_len TSRMLS_DC);
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
508
4a25a77 Fixed ZE specific compile warnings (Bug #55629)
Dmitry Stogov authored Sep 13, 2011
509 ZEND_API int zend_delete_global_variable_ex(const char *name, int name_len, ulong hash_value TSRMLS_DC);
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
510
1d33a3e Fixed bug #31158 (array_splice on $GLOBALS crashes)
Dmitry Stogov authored Jul 4, 2005
511 ZEND_API void zend_reset_all_cv(HashTable *symbol_table TSRMLS_DC);
512
2ecf4bb Lazy EG(active_symbol_table) initialization
Dmitry Stogov authored Apr 29, 2008
513 ZEND_API void zend_rebuild_symbol_table(TSRMLS_D);
514
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
515 #define add_method(arg, key, method) add_assoc_function((arg), (key), (method))
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
516
a35c61a MFZE1
Andrei Zmievski authored Sep 16, 2002
517 ZEND_API ZEND_FUNCTION(display_disabled_function);
a700180 commiting zend_disable_class patch for George:
Harald Radi authored Mar 3, 2003
518 ZEND_API ZEND_FUNCTION(display_disabled_class);
1727c6a more EXTERN_C wrapping of ZEND_API prototypes
Hartmut Holzgraefe authored Feb 20, 2004
519 END_EXTERN_C()
a35c61a MFZE1
Andrei Zmievski authored Sep 16, 2002
520
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
521 #if ZEND_DEBUG
522 #define CHECK_ZVAL_STRING(z) \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
523 if (Z_STRVAL_P(z)[ Z_STRLEN_P(z) ] != '\0') { zend_error(E_WARNING, "String is not zero-terminated (%s)", Z_STRVAL_P(z)); }
43ebb86 @zsuraski Fix bug #10287 - avoid crashing under a bogus usage of list()
zsuraski authored Jul 16, 2001
524 #define CHECK_ZVAL_STRING_REL(z) \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
525 if (Z_STRVAL_P(z)[ Z_STRLEN_P(z) ] != '\0') { zend_error(E_WARNING, "String is not zero-terminated (%s) (source: %s:%d)", Z_STRVAL_P(z) ZEND_FILE_LINE_RELAY_CC); }
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
526 #else
527 #define CHECK_ZVAL_STRING(z)
43ebb86 @zsuraski Fix bug #10287 - avoid crashing under a bogus usage of list()
zsuraski authored Jul 16, 2001
528 #define CHECK_ZVAL_STRING_REL(z)
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
529 #endif
530
32b5f8a @felipensp - Added new parameter parsing option (p - for valid path (string with…
felipensp authored Jun 6, 2011
531 #define CHECK_ZVAL_NULL_PATH(p) (Z_STRLEN_P(p) != strlen(Z_STRVAL_P(p)))
532 #define CHECK_NULL_PATH(p, l) (strlen(p) != l)
533
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
534 #define ZVAL_RESOURCE(z, l) do { \
535 zval *__z = (z); \
536 Z_LVAL_P(__z) = l; \
537 Z_TYPE_P(__z) = IS_RESOURCE;\
538 } while (0)
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
539
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
540 #define ZVAL_BOOL(z, b) do { \
541 zval *__z = (z); \
542 Z_LVAL_P(__z) = ((b) != 0); \
543 Z_TYPE_P(__z) = IS_BOOL; \
544 } while (0)
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
545
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
546 #define ZVAL_NULL(z) { \
547 Z_TYPE_P(z) = IS_NULL; \
af22085 added ZVAL_*() macros.
Thies C. Arntzen authored Jan 4, 2000
548 }
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
549
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
550 #define ZVAL_LONG(z, l) { \
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
551 zval *__z = (z); \
552 Z_LVAL_P(__z) = l; \
553 Z_TYPE_P(__z) = IS_LONG; \
af22085 added ZVAL_*() macros.
Thies C. Arntzen authored Jan 4, 2000
554 }
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
555
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
556 #define ZVAL_DOUBLE(z, d) { \
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
557 zval *__z = (z); \
558 Z_DVAL_P(__z) = d; \
559 Z_TYPE_P(__z) = IS_DOUBLE; \
af22085 added ZVAL_*() macros.
Thies C. Arntzen authored Jan 4, 2000
560 }
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
561
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
562 #define ZVAL_STRING(z, s, duplicate) do { \
563 const char *__s=(s); \
564 zval *__z = (z); \
565 Z_STRLEN_P(__z) = strlen(__s); \
566 Z_STRVAL_P(__z) = (duplicate?estrndup(__s, Z_STRLEN_P(__z)):(char*)__s);\
567 Z_TYPE_P(__z) = IS_STRING; \
568 } while (0)
569
570 #define ZVAL_STRINGL(z, s, l, duplicate) do { \
571 const char *__s=(s); int __l=l; \
572 zval *__z = (z); \
573 Z_STRLEN_P(__z) = __l; \
574 Z_STRVAL_P(__z) = (duplicate?estrndup(__s, __l):(char*)__s);\
575 Z_TYPE_P(__z) = IS_STRING; \
576 } while (0)
577
578 #define ZVAL_EMPTY_STRING(z) do { \
579 zval *__z = (z); \
580 Z_STRLEN_P(__z) = 0; \
581 Z_STRVAL_P(__z) = STR_EMPTY_ALLOC();\
582 Z_TYPE_P(__z) = IS_STRING; \
583 } while (0)
af22085 added ZVAL_*() macros.
Thies C. Arntzen authored Jan 4, 2000
584
d90ebc6 Fixed comilation warnings
Dmitry Stogov authored Jan 24, 2008
585 #define ZVAL_ZVAL(z, zv, copy, dtor) { \
586 zend_uchar is_ref = Z_ISREF_P(z); \
587 zend_uint refcount = Z_REFCOUNT_P(z); \
453b49e Added a number of small performance tweaks and optimizations
Dmitry Stogov authored Apr 20, 2010
588 ZVAL_COPY_VALUE(z, zv); \
d90ebc6 Fixed comilation warnings
Dmitry Stogov authored Jan 24, 2008
589 if (copy) { \
590 zval_copy_ctor(z); \
591 } \
592 if (dtor) { \
593 if (!copy) { \
594 ZVAL_NULL(zv); \
595 } \
596 zval_ptr_dtor(&zv); \
597 } \
598 Z_SET_ISREF_TO_P(z, is_ref); \
599 Z_SET_REFCOUNT_P(z, refcount); \
c7d27ad Add macros to return values of other zvals.
Marcus Boerger authored Nov 29, 2003
600 }
601
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
602 #define ZVAL_FALSE(z) ZVAL_BOOL(z, 0)
603 #define ZVAL_TRUE(z) ZVAL_BOOL(z, 1)
af22085 added ZVAL_*() macros.
Thies C. Arntzen authored Jan 4, 2000
604
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
605 #define RETVAL_RESOURCE(l) ZVAL_RESOURCE(return_value, l)
606 #define RETVAL_BOOL(b) ZVAL_BOOL(return_value, b)
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
607 #define RETVAL_NULL() ZVAL_NULL(return_value)
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
608 #define RETVAL_LONG(l) ZVAL_LONG(return_value, l)
609 #define RETVAL_DOUBLE(d) ZVAL_DOUBLE(return_value, d)
610 #define RETVAL_STRING(s, duplicate) ZVAL_STRING(return_value, s, duplicate)
611 #define RETVAL_STRINGL(s, l, duplicate) ZVAL_STRINGL(return_value, s, l, duplicate)
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
612 #define RETVAL_EMPTY_STRING() ZVAL_EMPTY_STRING(return_value)
c7d27ad Add macros to return values of other zvals.
Marcus Boerger authored Nov 29, 2003
613 #define RETVAL_ZVAL(zv, copy, dtor) ZVAL_ZVAL(return_value, zv, copy, dtor)
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
614 #define RETVAL_FALSE ZVAL_BOOL(return_value, 0)
615 #define RETVAL_TRUE ZVAL_BOOL(return_value, 1)
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
616
617 #define RETURN_RESOURCE(l) { RETVAL_RESOURCE(l); return; }
618 #define RETURN_BOOL(b) { RETVAL_BOOL(b); return; }
619 #define RETURN_NULL() { RETVAL_NULL(); return;}
620 #define RETURN_LONG(l) { RETVAL_LONG(l); return; }
621 #define RETURN_DOUBLE(d) { RETVAL_DOUBLE(d); return; }
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
622 #define RETURN_STRING(s, duplicate) { RETVAL_STRING(s, duplicate); return; }
623 #define RETURN_STRINGL(s, l, duplicate) { RETVAL_STRINGL(s, l, duplicate); return; }
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
624 #define RETURN_EMPTY_STRING() { RETVAL_EMPTY_STRING(); return; }
c7d27ad Add macros to return values of other zvals.
Marcus Boerger authored Nov 29, 2003
625 #define RETURN_ZVAL(zv, copy, dtor) { RETVAL_ZVAL(zv, copy, dtor); return; }
bcddfd4 cleaned up the RETVAL_ RETURN_ and ZVAL_ macros
Thies C. Arntzen authored Jul 10, 2001
626 #define RETURN_FALSE { RETVAL_FALSE; return; }
627 #define RETURN_TRUE { RETVAL_TRUE; return; }
1f985ed @zsuraski Moved all #define's for SET_ and RETURN_ to zend_API.h
zsuraski authored May 27, 1999
628
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
629 #define SET_VAR_STRING(n, v) { \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
630 { \
235386b @zsuraski Change ALLOC_ZVAL() semantics
zsuraski authored Dec 26, 1999
631 zval *var; \
632 ALLOC_ZVAL(var); \
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
633 ZVAL_STRING(var, v, 0); \
6393ab1 @zsuraski Now that's an annoying bug.
zsuraski authored Aug 6, 1999
634 ZEND_SET_GLOBAL_VAR(n, var); \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
635 } \
1f985ed @zsuraski Moved all #define's for SET_ and RETURN_ to zend_API.h
zsuraski authored May 27, 1999
636 }
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
637
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
638 #define SET_VAR_STRINGL(n, v, l) { \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
639 { \
235386b @zsuraski Change ALLOC_ZVAL() semantics
zsuraski authored Dec 26, 1999
640 zval *var; \
641 ALLOC_ZVAL(var); \
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
642 ZVAL_STRINGL(var, v, l, 0); \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
643 ZEND_SET_GLOBAL_VAR(n, var); \
644 } \
1f985ed @zsuraski Moved all #define's for SET_ and RETURN_ to zend_API.h
zsuraski authored May 27, 1999
645 }
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
646
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
647 #define SET_VAR_LONG(n, v) { \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
648 { \
235386b @zsuraski Change ALLOC_ZVAL() semantics
zsuraski authored Dec 26, 1999
649 zval *var; \
650 ALLOC_ZVAL(var); \
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
651 ZVAL_LONG(var, v); \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
652 ZEND_SET_GLOBAL_VAR(n, var); \
653 } \
1f985ed @zsuraski Moved all #define's for SET_ and RETURN_ to zend_API.h
zsuraski authored May 27, 1999
654 }
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
655
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
656 #define SET_VAR_DOUBLE(n, v) { \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
657 { \
235386b @zsuraski Change ALLOC_ZVAL() semantics
zsuraski authored Dec 26, 1999
658 zval *var; \
659 ALLOC_ZVAL(var); \
4f6c95d @zsuraski Whitespace
zsuraski authored Aug 11, 2001
660 ZVAL_DOUBLE(var, v); \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
661 ZEND_SET_GLOBAL_VAR(n, var); \
662 } \
1f985ed @zsuraski Moved all #define's for SET_ and RETURN_ to zend_API.h
zsuraski authored May 27, 1999
663 }
664
665
c34560b @andigutmans - Remove _EX and make it the old _LENGTH
andigutmans authored Dec 3, 1999
666 #define ZEND_SET_SYMBOL(symtable, name, var) \
667 { \
668 char *_name = (name); \
669 \
4c8259b @andigutmans - Call ZEND_SET_SYMBOL_WITH_LENGTH() with refcount 1 from the standard
andigutmans authored Dec 4, 1999
670 ZEND_SET_SYMBOL_WITH_LENGTH(symtable, _name, strlen(_name)+1, var, 1, 0); \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
671 }
672
c34560b @andigutmans - Remove _EX and make it the old _LENGTH
andigutmans authored Dec 3, 1999
673 #define ZEND_SET_SYMBOL_WITH_LENGTH(symtable, name, name_length, var, _refcount, _is_ref) \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
674 { \
675 zval **orig_var; \
676 \
620d013 @zsuraski Support symbols in any symbol table, not just the active one
zsuraski authored Jul 30, 1999
677 if (zend_hash_find(symtable, (name), (name_length), (void **) &orig_var)==SUCCESS \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
678 && PZVAL_IS_REF(*orig_var)) { \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
679 Z_SET_REFCOUNT_P(var, Z_REFCOUNT_PP(orig_var)); \
680 Z_SET_ISREF_P(var); \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
681 \
2ddc4fe @zsuraski Make it possible to explicitly set refcount in ZEND_SET_SYMBOL_WITH_L…
zsuraski authored Dec 1, 1999
682 if (_refcount) { \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
683 Z_SET_REFCOUNT_P(var, Z_REFCOUNT_P(var) + _refcount - 1); \
2ddc4fe @zsuraski Make it possible to explicitly set refcount in ZEND_SET_SYMBOL_WITH_L…
zsuraski authored Dec 1, 1999
684 } \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
685 zval_dtor(*orig_var); \
158088c @zsuraski Allow to set the reference count explicitly for ZEND_SET_SYMBOL_WITH_…
zsuraski authored Dec 1, 1999
686 **orig_var = *(var); \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
687 FREE_ZVAL(var); \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
688 } else { \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
689 Z_SET_ISREF_TO_P(var, _is_ref); \
158088c @zsuraski Allow to set the reference count explicitly for ZEND_SET_SYMBOL_WITH_…
zsuraski authored Dec 1, 1999
690 if (_refcount) { \
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
691 Z_SET_REFCOUNT_P(var, _refcount); \
158088c @zsuraski Allow to set the reference count explicitly for ZEND_SET_SYMBOL_WITH_…
zsuraski authored Dec 1, 1999
692 } \
693 zend_hash_update(symtable, (name), (name_length), &(var), sizeof(zval *), NULL); \
48ffdd7 @zsuraski * Setting variables in the global scope wasn't handling is_ref's prop…
zsuraski authored Jul 30, 1999
694 } \
695 }
696
620d013 @zsuraski Support symbols in any symbol table, not just the active one
zsuraski authored Jul 30, 1999
697
698 #define ZEND_SET_GLOBAL_VAR(name, var) \
699 ZEND_SET_SYMBOL(&EG(symbol_table), name, var)
700
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
701 #define ZEND_SET_GLOBAL_VAR_WITH_LENGTH(name, name_length, var, _refcount, _is_ref) \
e345066 *** empty log message ***
Andrei Zmievski authored Dec 3, 1999
702 ZEND_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), name, name_length, var, _refcount, _is_ref)
fec413c Added ZEND_SET_GLOBAL_VAR_WITH_LENGTH_EX() macro.
Andrei Zmievski authored Dec 3, 1999
703
b489251 - MFH from HEAD:
Jani Taskinen authored Nov 2, 2007
704 #define ZEND_DEFINE_PROPERTY(class_ptr, name, value, mask) \
1343385 @zsuraski Rework zend_do_declare_property and related code into one code base
zsuraski authored Jul 7, 2003
705 { \
706 char *_name = (name); \
707 int namelen = strlen(_name); \
7bbbd50 Fix handling of static properties initialized to arrays
Marcus Boerger authored Sep 3, 2003
708 zend_declare_property(class_ptr, _name, namelen, value, mask TSRMLS_CC); \
daf3ac6 add convenience functions or adding class properties. Ok'd for commit…
George Schlossnagle authored Jul 6, 2003
709 }
710
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
711 #define HASH_OF(p) (Z_TYPE_P(p)==IS_ARRAY ? Z_ARRVAL_P(p) : ((Z_TYPE_P(p)==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties((p) TSRMLS_CC) : NULL)))
712 #define ZVAL_IS_NULL(z) (Z_TYPE_P(z)==IS_NULL)
06a18f1 @andigutmans - Add some internal functions to Zend
andigutmans authored Sep 20, 1999
713
8b6f848 @andigutmans - Merge from Engine 1
andigutmans authored Aug 10, 2001
714 /* For compatibility */
715 #define ZEND_MINIT ZEND_MODULE_STARTUP_N
716 #define ZEND_MSHUTDOWN ZEND_MODULE_SHUTDOWN_N
717 #define ZEND_RINIT ZEND_MODULE_ACTIVATE_N
718 #define ZEND_RSHUTDOWN ZEND_MODULE_DEACTIVATE_N
719 #define ZEND_MINFO ZEND_MODULE_INFO_N
ada4e50 MFH: Added automatic module globals management.
Dmitry Stogov authored Jun 15, 2006
720 #define ZEND_GINIT(module) ((void (*)(void* TSRMLS_DC))(ZEND_MODULE_GLOBALS_CTOR_N(module)))
721 #define ZEND_GSHUTDOWN(module) ((void (*)(void* TSRMLS_DC))(ZEND_MODULE_GLOBALS_DTOR_N(module)))
8b6f848 @andigutmans - Merge from Engine 1
andigutmans authored Aug 10, 2001
722
723 #define ZEND_MINIT_FUNCTION ZEND_MODULE_STARTUP_D
f5c5986 @smalyshev _FUNCTION is used in definition, so use _D
smalyshev authored Aug 12, 2001
724 #define ZEND_MSHUTDOWN_FUNCTION ZEND_MODULE_SHUTDOWN_D
725 #define ZEND_RINIT_FUNCTION ZEND_MODULE_ACTIVATE_D
726 #define ZEND_RSHUTDOWN_FUNCTION ZEND_MODULE_DEACTIVATE_D
727 #define ZEND_MINFO_FUNCTION ZEND_MODULE_INFO_D
ada4e50 MFH: Added automatic module globals management.
Dmitry Stogov authored Jun 15, 2006
728 #define ZEND_GINIT_FUNCTION ZEND_MODULE_GLOBALS_CTOR_D
729 #define ZEND_GSHUTDOWN_FUNCTION ZEND_MODULE_GLOBALS_DTOR_D
8b6f848 @andigutmans - Merge from Engine 1
andigutmans authored Aug 10, 2001
730
0450ab9 @zsuraski MFZE1 (Expose more C++ APIs)
zsuraski authored May 20, 2002
731 END_EXTERN_C()
637a404 - MFH as discussed
Marcus Boerger authored May 9, 2006
732
b982307 Change header protection macros to conform to standard.
Sascha Schumann authored Jul 2, 2000
733 #endif /* ZEND_API_H */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
734
8b6f848 @andigutmans - Merge from Engine 1
andigutmans authored Aug 10, 2001
735
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
736 /*
737 * Local variables:
738 * tab-width: 4
739 * c-basic-offset: 4
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
740 * indent-tabs-mode: t
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
741 * End:
742 */
Something went wrong with that request. Please try again.