File: zend_vm_execute.skl

package info (click to toggle)
php7.0 7.0.33-0%2Bdeb9u8
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 184,180 kB
  • sloc: ansic: 809,195; php: 22,035; sh: 11,873; cpp: 8,064; xml: 6,228; javascript: 2,546; yacc: 1,869; exp: 1,514; makefile: 1,231; pascal: 1,200; awk: 501; perl: 315; sql: 22
file content (49 lines) | stat: -rw-r--r-- 1,135 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{%DEFINES%}

ZEND_API void {%EXECUTOR_NAME%}_ex(zend_execute_data *ex)
{
	DCL_OPLINE

	{%HELPER_VARS%}

	{%INTERNAL_LABELS%}

	LOAD_OPLINE();

	while (1) {
    {%ZEND_VM_CONTINUE_LABEL%}
		{%ZEND_VM_DISPATCH%} {
			{%INTERNAL_EXECUTOR%}
		}

	}
	zend_error_noreturn(E_CORE_ERROR, "Arrived at end of main loop which shouldn't happen");
}

ZEND_API void zend_{%EXECUTOR_NAME%}(zend_op_array *op_array, zval *return_value)
{
	zend_execute_data *execute_data;

	if (EG(exception) != NULL) {
		return;
	}

	execute_data = zend_vm_stack_push_call_frame(ZEND_CALL_TOP_CODE,
		(zend_function*)op_array, 0, zend_get_called_scope(EG(current_execute_data)), zend_get_this_object(EG(current_execute_data)));
	if (EG(current_execute_data)) {
		execute_data->symbol_table = zend_rebuild_symbol_table();
	} else {
		execute_data->symbol_table = &EG(symbol_table);
	}
	EX(prev_execute_data) = EG(current_execute_data);
	i_init_execute_data(execute_data, op_array, return_value);
	zend_{%EXECUTOR_NAME%}_ex(execute_data);
	zend_vm_stack_free_call_frame(execute_data);
}

{%EXTERNAL_EXECUTOR%}

void {%INITIALIZER_NAME%}(void)
{
  {%EXTERNAL_LABELS%}
}