Skip to content

Commit 292085f

Browse files
committed
Generate zend_builtin_functions FEs from stubs
1 parent 832cfa1 commit 292085f

File tree

3 files changed

+124
-122
lines changed

3 files changed

+124
-122
lines changed

Zend/zend_builtin_functions.c

Lines changed: 1 addition & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -27,131 +27,10 @@
2727
#include "zend_extensions.h"
2828
#include "zend_closures.h"
2929
#include "zend_generators.h"
30-
31-
static ZEND_FUNCTION(zend_version);
32-
static ZEND_FUNCTION(func_num_args);
33-
static ZEND_FUNCTION(func_get_arg);
34-
static ZEND_FUNCTION(func_get_args);
35-
static ZEND_FUNCTION(strlen);
36-
static ZEND_FUNCTION(strcmp);
37-
static ZEND_FUNCTION(strncmp);
38-
static ZEND_FUNCTION(strcasecmp);
39-
static ZEND_FUNCTION(strncasecmp);
40-
static ZEND_FUNCTION(error_reporting);
41-
static ZEND_FUNCTION(define);
42-
static ZEND_FUNCTION(defined);
43-
static ZEND_FUNCTION(get_class);
44-
static ZEND_FUNCTION(get_called_class);
45-
static ZEND_FUNCTION(get_parent_class);
46-
static ZEND_FUNCTION(method_exists);
47-
static ZEND_FUNCTION(property_exists);
48-
static ZEND_FUNCTION(class_exists);
49-
static ZEND_FUNCTION(interface_exists);
50-
static ZEND_FUNCTION(trait_exists);
51-
static ZEND_FUNCTION(function_exists);
52-
static ZEND_FUNCTION(class_alias);
53-
static ZEND_FUNCTION(get_included_files);
54-
static ZEND_FUNCTION(is_subclass_of);
55-
static ZEND_FUNCTION(is_a);
56-
static ZEND_FUNCTION(get_class_vars);
57-
static ZEND_FUNCTION(get_object_vars);
58-
static ZEND_FUNCTION(get_mangled_object_vars);
59-
static ZEND_FUNCTION(get_class_methods);
60-
static ZEND_FUNCTION(trigger_error);
61-
static ZEND_FUNCTION(set_error_handler);
62-
static ZEND_FUNCTION(restore_error_handler);
63-
static ZEND_FUNCTION(set_exception_handler);
64-
static ZEND_FUNCTION(restore_exception_handler);
65-
static ZEND_FUNCTION(get_declared_classes);
66-
static ZEND_FUNCTION(get_declared_traits);
67-
static ZEND_FUNCTION(get_declared_interfaces);
68-
static ZEND_FUNCTION(get_defined_functions);
69-
static ZEND_FUNCTION(get_defined_vars);
70-
static ZEND_FUNCTION(get_resource_type);
71-
static ZEND_FUNCTION(get_resources);
72-
static ZEND_FUNCTION(get_loaded_extensions);
73-
static ZEND_FUNCTION(extension_loaded);
74-
static ZEND_FUNCTION(get_extension_funcs);
75-
static ZEND_FUNCTION(get_defined_constants);
76-
static ZEND_FUNCTION(debug_backtrace);
77-
static ZEND_FUNCTION(debug_print_backtrace);
78-
#if ZEND_DEBUG && defined(ZTS)
79-
static ZEND_FUNCTION(zend_thread_id);
80-
#endif
81-
static ZEND_FUNCTION(gc_mem_caches);
82-
static ZEND_FUNCTION(gc_collect_cycles);
83-
static ZEND_FUNCTION(gc_enabled);
84-
static ZEND_FUNCTION(gc_enable);
85-
static ZEND_FUNCTION(gc_disable);
86-
static ZEND_FUNCTION(gc_status);
87-
8830
#include "zend_builtin_functions_arginfo.h"
8931

9032
/* }}} */
9133

92-
static const zend_function_entry builtin_functions[] = { /* {{{ */
93-
ZEND_FE(zend_version, arginfo_zend_version)
94-
ZEND_FE(func_num_args, arginfo_func_num_args)
95-
ZEND_FE(func_get_arg, arginfo_func_get_arg)
96-
ZEND_FE(func_get_args, arginfo_func_get_args)
97-
ZEND_FE(strlen, arginfo_strlen)
98-
ZEND_FE(strcmp, arginfo_strcmp)
99-
ZEND_FE(strncmp, arginfo_strncmp)
100-
ZEND_FE(strcasecmp, arginfo_strcasecmp)
101-
ZEND_FE(strncasecmp, arginfo_strncasecmp)
102-
ZEND_FE(error_reporting, arginfo_error_reporting)
103-
ZEND_FE(define, arginfo_define)
104-
ZEND_FE(defined, arginfo_defined)
105-
ZEND_FE(get_class, arginfo_get_class)
106-
ZEND_FE(get_called_class, arginfo_get_called_class)
107-
ZEND_FE(get_parent_class, arginfo_get_parent_class)
108-
ZEND_FE(method_exists, arginfo_method_exists)
109-
ZEND_FE(property_exists, arginfo_property_exists)
110-
ZEND_FE(class_exists, arginfo_class_exists)
111-
ZEND_FE(interface_exists, arginfo_interface_exists)
112-
ZEND_FE(trait_exists, arginfo_trait_exists)
113-
ZEND_FE(function_exists, arginfo_function_exists)
114-
ZEND_FE(class_alias, arginfo_class_alias)
115-
ZEND_FE(get_included_files, arginfo_get_included_files)
116-
ZEND_FALIAS(get_required_files, get_included_files, arginfo_get_required_files)
117-
ZEND_FE(is_subclass_of, arginfo_is_subclass_of)
118-
ZEND_FE(is_a, arginfo_is_a)
119-
ZEND_FE(get_class_vars, arginfo_get_class_vars)
120-
ZEND_FE(get_object_vars, arginfo_get_object_vars)
121-
ZEND_FE(get_mangled_object_vars, arginfo_get_mangled_object_vars)
122-
ZEND_FE(get_class_methods, arginfo_get_class_methods)
123-
ZEND_FE(trigger_error, arginfo_trigger_error)
124-
ZEND_FALIAS(user_error, trigger_error, arginfo_user_error)
125-
ZEND_FE(set_error_handler, arginfo_set_error_handler)
126-
ZEND_FE(restore_error_handler, arginfo_restore_error_handler)
127-
ZEND_FE(set_exception_handler, arginfo_set_exception_handler)
128-
ZEND_FE(restore_exception_handler, arginfo_restore_exception_handler)
129-
ZEND_FE(get_declared_classes, arginfo_get_declared_classes)
130-
ZEND_FE(get_declared_traits, arginfo_get_declared_traits)
131-
ZEND_FE(get_declared_interfaces, arginfo_get_declared_interfaces)
132-
ZEND_FE(get_defined_functions, arginfo_get_defined_functions)
133-
ZEND_FE(get_defined_vars, arginfo_get_defined_vars)
134-
ZEND_FE(get_resource_type, arginfo_get_resource_type)
135-
ZEND_FE(get_resources, arginfo_get_resources)
136-
ZEND_FE(get_loaded_extensions, arginfo_get_loaded_extensions)
137-
ZEND_FE(extension_loaded, arginfo_extension_loaded)
138-
ZEND_FE(get_extension_funcs, arginfo_get_extension_funcs)
139-
ZEND_FE(get_defined_constants, arginfo_get_defined_constants)
140-
ZEND_FE(debug_backtrace, arginfo_debug_backtrace)
141-
ZEND_FE(debug_print_backtrace, arginfo_debug_print_backtrace)
142-
#if ZEND_DEBUG && defined(ZTS)
143-
ZEND_FE(zend_thread_id, arginfo_zend_thread_id)
144-
#endif
145-
ZEND_FE(gc_mem_caches, arginfo_gc_mem_caches)
146-
ZEND_FE(gc_collect_cycles, arginfo_gc_collect_cycles)
147-
ZEND_FE(gc_enabled, arginfo_gc_enabled)
148-
ZEND_FE(gc_enable, arginfo_gc_enable)
149-
ZEND_FE(gc_disable, arginfo_gc_disable)
150-
ZEND_FE(gc_status, arginfo_gc_status)
151-
ZEND_FE_END
152-
};
153-
/* }}} */
154-
15534
ZEND_MINIT_FUNCTION(core) { /* {{{ */
15635
zend_class_entry class_entry;
15736

@@ -167,7 +46,7 @@ ZEND_MINIT_FUNCTION(core) { /* {{{ */
16746
zend_module_entry zend_builtin_module = { /* {{{ */
16847
STANDARD_MODULE_HEADER,
16948
"Core",
170-
builtin_functions,
49+
ext_functions,
17150
ZEND_MINIT(core),
17251
NULL,
17352
NULL,

Zend/zend_builtin_functions.stub.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
22

3+
/** @generate-function-entries */
4+
35
function zend_version(): string {}
46

57
function func_num_args(): int {}

Zend/zend_builtin_functions_arginfo.h

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,3 +202,124 @@ ZEND_END_ARG_INFO()
202202
#define arginfo_gc_disable arginfo_gc_enable
203203

204204
#define arginfo_gc_status arginfo_func_get_args
205+
206+
207+
ZEND_FUNCTION(zend_version);
208+
ZEND_FUNCTION(func_num_args);
209+
ZEND_FUNCTION(func_get_arg);
210+
ZEND_FUNCTION(func_get_args);
211+
ZEND_FUNCTION(strlen);
212+
ZEND_FUNCTION(strcmp);
213+
ZEND_FUNCTION(strncmp);
214+
ZEND_FUNCTION(strcasecmp);
215+
ZEND_FUNCTION(strncasecmp);
216+
ZEND_FUNCTION(error_reporting);
217+
ZEND_FUNCTION(define);
218+
ZEND_FUNCTION(defined);
219+
ZEND_FUNCTION(get_class);
220+
ZEND_FUNCTION(get_called_class);
221+
ZEND_FUNCTION(get_parent_class);
222+
ZEND_FUNCTION(is_subclass_of);
223+
ZEND_FUNCTION(is_a);
224+
ZEND_FUNCTION(get_class_vars);
225+
ZEND_FUNCTION(get_object_vars);
226+
ZEND_FUNCTION(get_mangled_object_vars);
227+
ZEND_FUNCTION(get_class_methods);
228+
ZEND_FUNCTION(method_exists);
229+
ZEND_FUNCTION(property_exists);
230+
ZEND_FUNCTION(class_exists);
231+
ZEND_FUNCTION(interface_exists);
232+
ZEND_FUNCTION(trait_exists);
233+
ZEND_FUNCTION(function_exists);
234+
ZEND_FUNCTION(class_alias);
235+
ZEND_FUNCTION(get_included_files);
236+
ZEND_FUNCTION(trigger_error);
237+
ZEND_FUNCTION(set_error_handler);
238+
ZEND_FUNCTION(restore_error_handler);
239+
ZEND_FUNCTION(set_exception_handler);
240+
ZEND_FUNCTION(restore_exception_handler);
241+
ZEND_FUNCTION(get_declared_classes);
242+
ZEND_FUNCTION(get_declared_traits);
243+
ZEND_FUNCTION(get_declared_interfaces);
244+
ZEND_FUNCTION(get_defined_functions);
245+
ZEND_FUNCTION(get_defined_vars);
246+
ZEND_FUNCTION(get_resource_type);
247+
ZEND_FUNCTION(get_resources);
248+
ZEND_FUNCTION(get_loaded_extensions);
249+
ZEND_FUNCTION(get_defined_constants);
250+
ZEND_FUNCTION(debug_backtrace);
251+
ZEND_FUNCTION(debug_print_backtrace);
252+
ZEND_FUNCTION(extension_loaded);
253+
ZEND_FUNCTION(get_extension_funcs);
254+
#if ZEND_DEBUG && defined(ZTS)
255+
ZEND_FUNCTION(zend_thread_id);
256+
#endif
257+
ZEND_FUNCTION(gc_mem_caches);
258+
ZEND_FUNCTION(gc_collect_cycles);
259+
ZEND_FUNCTION(gc_enabled);
260+
ZEND_FUNCTION(gc_enable);
261+
ZEND_FUNCTION(gc_disable);
262+
ZEND_FUNCTION(gc_status);
263+
264+
265+
static const zend_function_entry ext_functions[] = {
266+
ZEND_FE(zend_version, arginfo_zend_version)
267+
ZEND_FE(func_num_args, arginfo_func_num_args)
268+
ZEND_FE(func_get_arg, arginfo_func_get_arg)
269+
ZEND_FE(func_get_args, arginfo_func_get_args)
270+
ZEND_FE(strlen, arginfo_strlen)
271+
ZEND_FE(strcmp, arginfo_strcmp)
272+
ZEND_FE(strncmp, arginfo_strncmp)
273+
ZEND_FE(strcasecmp, arginfo_strcasecmp)
274+
ZEND_FE(strncasecmp, arginfo_strncasecmp)
275+
ZEND_FE(error_reporting, arginfo_error_reporting)
276+
ZEND_FE(define, arginfo_define)
277+
ZEND_FE(defined, arginfo_defined)
278+
ZEND_FE(get_class, arginfo_get_class)
279+
ZEND_FE(get_called_class, arginfo_get_called_class)
280+
ZEND_FE(get_parent_class, arginfo_get_parent_class)
281+
ZEND_FE(is_subclass_of, arginfo_is_subclass_of)
282+
ZEND_FE(is_a, arginfo_is_a)
283+
ZEND_FE(get_class_vars, arginfo_get_class_vars)
284+
ZEND_FE(get_object_vars, arginfo_get_object_vars)
285+
ZEND_FE(get_mangled_object_vars, arginfo_get_mangled_object_vars)
286+
ZEND_FE(get_class_methods, arginfo_get_class_methods)
287+
ZEND_FE(method_exists, arginfo_method_exists)
288+
ZEND_FE(property_exists, arginfo_property_exists)
289+
ZEND_FE(class_exists, arginfo_class_exists)
290+
ZEND_FE(interface_exists, arginfo_interface_exists)
291+
ZEND_FE(trait_exists, arginfo_trait_exists)
292+
ZEND_FE(function_exists, arginfo_function_exists)
293+
ZEND_FE(class_alias, arginfo_class_alias)
294+
ZEND_FE(get_included_files, arginfo_get_included_files)
295+
ZEND_FALIAS(get_required_files, get_included_files, arginfo_get_required_files)
296+
ZEND_FE(trigger_error, arginfo_trigger_error)
297+
ZEND_FALIAS(user_error, trigger_error, arginfo_user_error)
298+
ZEND_FE(set_error_handler, arginfo_set_error_handler)
299+
ZEND_FE(restore_error_handler, arginfo_restore_error_handler)
300+
ZEND_FE(set_exception_handler, arginfo_set_exception_handler)
301+
ZEND_FE(restore_exception_handler, arginfo_restore_exception_handler)
302+
ZEND_FE(get_declared_classes, arginfo_get_declared_classes)
303+
ZEND_FE(get_declared_traits, arginfo_get_declared_traits)
304+
ZEND_FE(get_declared_interfaces, arginfo_get_declared_interfaces)
305+
ZEND_FE(get_defined_functions, arginfo_get_defined_functions)
306+
ZEND_FE(get_defined_vars, arginfo_get_defined_vars)
307+
ZEND_FE(get_resource_type, arginfo_get_resource_type)
308+
ZEND_FE(get_resources, arginfo_get_resources)
309+
ZEND_FE(get_loaded_extensions, arginfo_get_loaded_extensions)
310+
ZEND_FE(get_defined_constants, arginfo_get_defined_constants)
311+
ZEND_FE(debug_backtrace, arginfo_debug_backtrace)
312+
ZEND_FE(debug_print_backtrace, arginfo_debug_print_backtrace)
313+
ZEND_FE(extension_loaded, arginfo_extension_loaded)
314+
ZEND_FE(get_extension_funcs, arginfo_get_extension_funcs)
315+
#if ZEND_DEBUG && defined(ZTS)
316+
ZEND_FE(zend_thread_id, arginfo_zend_thread_id)
317+
#endif
318+
ZEND_FE(gc_mem_caches, arginfo_gc_mem_caches)
319+
ZEND_FE(gc_collect_cycles, arginfo_gc_collect_cycles)
320+
ZEND_FE(gc_enabled, arginfo_gc_enabled)
321+
ZEND_FE(gc_enable, arginfo_gc_enable)
322+
ZEND_FE(gc_disable, arginfo_gc_disable)
323+
ZEND_FE(gc_status, arginfo_gc_status)
324+
ZEND_FE_END
325+
};

0 commit comments

Comments
 (0)