op_array 1412 Zend/zend.c zend_op_array *op_array; op_array 1421 Zend/zend.c op_array = zend_compile_file(file_handle, type); op_array 1426 Zend/zend.c if (op_array) { op_array 1427 Zend/zend.c zend_execute(op_array, retval); op_array 1433 Zend/zend.c destroy_op_array(op_array); op_array 1434 Zend/zend.c efree_size(op_array, sizeof(zend_op_array)); op_array 3027 Zend/zend_API.c if ((fcc->function_handler->op_array.fn_flags & ZEND_ACC_CHANGED) && op_array 3042 Zend/zend_API.c if (fcc->function_handler->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 3139 Zend/zend_API.c if (fcc->function_handler->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 4126 Zend/zend_API.c (f->op_array.refcount && *(f->op_array.refcount) < 2) || op_array 468 Zend/zend_builtin_functions.c first_extra_arg = ex->func->op_array.num_args; op_array 470 Zend/zend_builtin_functions.c arg = ZEND_CALL_VAR_NUM(ex, ex->func->op_array.last_var + ex->func->op_array.T) + (requested_offset - first_extra_arg); op_array 499 Zend/zend_builtin_functions.c first_extra_arg = ex->func->op_array.num_args; op_array 519 Zend/zend_builtin_functions.c p = ZEND_CALL_VAR_NUM(ex, ex->func->op_array.last_var + ex->func->op_array.T); op_array 1285 Zend/zend_builtin_functions.c (!mptr->op_array.refcount || *mptr->op_array.refcount > 1) && op_array 2255 Zend/zend_builtin_functions.c uint32_t first_extra_arg = call->func->op_array.num_args; op_array 2269 Zend/zend_builtin_functions.c p = ZEND_CALL_VAR_NUM(call, call->func->op_array.last_var + call->func->op_array.T); op_array 2355 Zend/zend_builtin_functions.c filename = ZSTR_VAL(skip->func->op_array.filename); op_array 2360 Zend/zend_builtin_functions.c lineno = skip->func->op_array.line_end; op_array 2471 Zend/zend_builtin_functions.c zend_printf(") called at [%s:%d]\n", ZSTR_VAL(prev->func->op_array.filename), prev->opline->lineno); op_array 2551 Zend/zend_builtin_functions.c filename = skip->func->op_array.filename; op_array 2556 Zend/zend_builtin_functions.c lineno = skip->func->op_array.line_end; op_array 2579 Zend/zend_builtin_functions.c add_assoc_str_ex(&stack_frame, "file", sizeof("file")-1, zend_string_copy(prev->func->op_array.filename)); op_array 168 Zend/zend_closures.c my_function.op_array.run_time_cache = emalloc(my_function.op_array.cache_size); op_array 169 Zend/zend_closures.c memset(my_function.op_array.run_time_cache, 0, my_function.op_array.cache_size); op_array 181 Zend/zend_closures.c efree(my_function.op_array.run_time_cache); op_array 234 Zend/zend_closures.c if (ZEND_USER_CODE(closure->func.type) && (closure->func.common.scope != new_closure->func.common.scope || (closure->func.op_array.fn_flags & ZEND_ACC_NO_RT_ARENA))) { op_array 235 Zend/zend_closures.c new_closure->func.op_array.run_time_cache = emalloc(new_closure->func.op_array.cache_size); op_array 236 Zend/zend_closures.c memset(new_closure->func.op_array.run_time_cache, 0, new_closure->func.op_array.cache_size); op_array 238 Zend/zend_closures.c new_closure->func.op_array.fn_flags |= ZEND_ACC_NO_RT_ARENA; op_array 354 Zend/zend_closures.c if (closure->func.op_array.fn_flags & ZEND_ACC_NO_RT_ARENA) { op_array 355 Zend/zend_closures.c efree(closure->func.op_array.run_time_cache); op_array 356 Zend/zend_closures.c closure->func.op_array.run_time_cache = NULL; op_array 358 Zend/zend_closures.c destroy_op_array(&closure->func.op_array); op_array 427 Zend/zend_closures.c if (closure->func.type == ZEND_USER_FUNCTION && closure->func.op_array.static_variables) { op_array 428 Zend/zend_closures.c HashTable *static_variables = closure->func.op_array.static_variables; op_array 480 Zend/zend_closures.c closure->func.op_array.static_variables : NULL; op_array 572 Zend/zend_closures.c if (closure->func.op_array.static_variables) { op_array 573 Zend/zend_closures.c HashTable *static_variables = closure->func.op_array.static_variables; op_array 575 Zend/zend_closures.c ALLOC_HASHTABLE(closure->func.op_array.static_variables); op_array 576 Zend/zend_closures.c zend_hash_init(closure->func.op_array.static_variables, zend_hash_num_elements(static_variables), NULL, ZVAL_PTR_DTOR, 0); op_array 577 Zend/zend_closures.c zend_hash_apply_with_arguments(static_variables, zval_copy_static_var, 1, closure->func.op_array.static_variables); op_array 579 Zend/zend_closures.c if (UNEXPECTED(!closure->func.op_array.run_time_cache)) { op_array 580 Zend/zend_closures.c closure->func.op_array.run_time_cache = func->op_array.run_time_cache = zend_arena_alloc(&CG(arena), func->op_array.cache_size); op_array 581 Zend/zend_closures.c memset(func->op_array.run_time_cache, 0, func->op_array.cache_size); op_array 583 Zend/zend_closures.c if (closure->func.op_array.refcount) { op_array 584 Zend/zend_closures.c (*closure->func.op_array.refcount)++; op_array 31 Zend/zend_closures.h ZEND_API void zend_create_closure(zval *res, zend_function *op_array, zend_class_entry *scope, zend_class_entry *called_scope, zval *this_ptr); op_array 32 Zend/zend_closures.h ZEND_API void zend_create_fake_closure(zval *res, zend_function *op_array, zend_class_entry *scope, zend_class_entry *called_scope, zval *this_ptr); op_array 68 Zend/zend_compile.c zend_op_array *op_array = CG(active_op_array); op_array 69 Zend/zend_compile.c Z_CACHE_SLOT(op_array->literals[literal]) = op_array->cache_size; op_array 70 Zend/zend_compile.c op_array->cache_size += sizeof(void*); op_array 76 Zend/zend_compile.c zend_op_array *op_array = CG(active_op_array); op_array 77 Zend/zend_compile.c Z_CACHE_SLOT(op_array->literals[literal]) = op_array->cache_size; op_array 78 Zend/zend_compile.c op_array->cache_size += POLYMORPHIC_CACHE_SLOT_SIZE * sizeof(void*); op_array 380 Zend/zend_compile.c static uint32_t get_temporary_variable(zend_op_array *op_array) /* {{{ */ op_array 382 Zend/zend_compile.c return (uint32_t)op_array->T++; op_array 386 Zend/zend_compile.c static int lookup_cv(zend_op_array *op_array, zend_string* name) /* {{{ */{ op_array 390 Zend/zend_compile.c while (i < op_array->last_var) { op_array 391 Zend/zend_compile.c if (ZSTR_VAL(op_array->vars[i]) == ZSTR_VAL(name) || op_array 392 Zend/zend_compile.c (ZSTR_H(op_array->vars[i]) == hash_value && op_array 393 Zend/zend_compile.c ZSTR_LEN(op_array->vars[i]) == ZSTR_LEN(name) && op_array 394 Zend/zend_compile.c memcmp(ZSTR_VAL(op_array->vars[i]), ZSTR_VAL(name), ZSTR_LEN(name)) == 0)) { op_array 400 Zend/zend_compile.c i = op_array->last_var; op_array 401 Zend/zend_compile.c op_array->last_var++; op_array 402 Zend/zend_compile.c if (op_array->last_var > CG(context).vars_size) { op_array 404 Zend/zend_compile.c op_array->vars = erealloc(op_array->vars, CG(context).vars_size * sizeof(zend_string*)); op_array 407 Zend/zend_compile.c op_array->vars[i] = zend_new_interned_string(name); op_array 412 Zend/zend_compile.c void zend_del_literal(zend_op_array *op_array, int n) /* {{{ */ op_array 414 Zend/zend_compile.c zval_dtor(CT_CONSTANT_EX(op_array, n)); op_array 415 Zend/zend_compile.c if (n + 1 == op_array->last_literal) { op_array 416 Zend/zend_compile.c op_array->last_literal--; op_array 418 Zend/zend_compile.c ZVAL_UNDEF(CT_CONSTANT_EX(op_array, n)); op_array 424 Zend/zend_compile.c static inline void zend_insert_literal(zend_op_array *op_array, zval *zv, int literal_position) /* {{{ */ op_array 433 Zend/zend_compile.c ZVAL_COPY_VALUE(CT_CONSTANT_EX(op_array, literal_position), zv); op_array 434 Zend/zend_compile.c Z_CACHE_SLOT(op_array->literals[literal_position]) = -1; op_array 441 Zend/zend_compile.c int zend_add_literal(zend_op_array *op_array, zval *zv) /* {{{ */ op_array 443 Zend/zend_compile.c int i = op_array->last_literal; op_array 444 Zend/zend_compile.c op_array->last_literal++; op_array 449 Zend/zend_compile.c op_array->literals = (zval*)erealloc(op_array->literals, CG(context).literals_size * sizeof(zval)); op_array 451 Zend/zend_compile.c zend_insert_literal(op_array, zv, i); op_array 456 Zend/zend_compile.c static inline int zend_add_literal_string(zend_op_array *op_array, zend_string **str) /* {{{ */ op_array 461 Zend/zend_compile.c ret = zend_add_literal(op_array, &zv); op_array 467 Zend/zend_compile.c static int zend_add_func_name_literal(zend_op_array *op_array, zend_string *name) /* {{{ */ op_array 470 Zend/zend_compile.c int ret = zend_add_literal_string(op_array, &name); op_array 474 Zend/zend_compile.c zend_add_literal_string(op_array, &lc_name); op_array 480 Zend/zend_compile.c static int zend_add_ns_func_name_literal(zend_op_array *op_array, zend_string *name) /* {{{ */ op_array 486 Zend/zend_compile.c int ret = zend_add_literal_string(op_array, &name); op_array 490 Zend/zend_compile.c zend_add_literal_string(op_array, &lc_name); op_array 496 Zend/zend_compile.c zend_add_literal_string(op_array, &lc_name); op_array 503 Zend/zend_compile.c static int zend_add_class_name_literal(zend_op_array *op_array, zend_string *name) /* {{{ */ op_array 506 Zend/zend_compile.c int ret = zend_add_literal_string(op_array, &name); op_array 510 Zend/zend_compile.c zend_add_literal_string(op_array, &lc_name); op_array 518 Zend/zend_compile.c static int zend_add_const_name_literal(zend_op_array *op_array, zend_string *name, zend_bool unqualified) /* {{{ */ op_array 522 Zend/zend_compile.c int ret = zend_add_literal_string(op_array, &name); op_array 534 Zend/zend_compile.c zend_add_literal_string(op_array, &tmp_name); op_array 538 Zend/zend_compile.c zend_add_literal_string(op_array, &tmp_name); op_array 549 Zend/zend_compile.c zend_add_literal_string(op_array, &tmp_name); op_array 554 Zend/zend_compile.c zend_add_literal_string(op_array, &tmp_name); op_array 899 Zend/zend_compile.c zend_op_array *op_array = CG(active_op_array); op_array 900 Zend/zend_compile.c uint32_t try_catch_offset = op_array->last_try_catch++; op_array 903 Zend/zend_compile.c op_array->try_catch_array = safe_erealloc( op_array 904 Zend/zend_compile.c op_array->try_catch_array, sizeof(zend_try_catch_element), op_array->last_try_catch, 0); op_array 906 Zend/zend_compile.c elem = &op_array->try_catch_array[try_catch_offset]; op_array 919 Zend/zend_compile.c zend_op_array *op_array = &function->op_array; op_array 921 Zend/zend_compile.c if (op_array->refcount) { op_array 922 Zend/zend_compile.c (*op_array->refcount)++; op_array 924 Zend/zend_compile.c if (op_array->static_variables) { op_array 925 Zend/zend_compile.c if (!(GC_FLAGS(op_array->static_variables) & IS_ARRAY_IMMUTABLE)) { op_array 926 Zend/zend_compile.c GC_REFCOUNT(op_array->static_variables)++; op_array 929 Zend/zend_compile.c op_array->run_time_cache = NULL; op_array 938 Zend/zend_compile.c ZEND_API int do_bind_function(const zend_op_array *op_array, const zend_op *opline, HashTable *function_table, zend_bool compile_time) /* {{{ */ op_array 944 Zend/zend_compile.c op1 = CT_CONSTANT_EX(op_array, opline->op1.constant); op_array 945 Zend/zend_compile.c op2 = CT_CONSTANT_EX(op_array, opline->op2.constant); op_array 947 Zend/zend_compile.c op1 = RT_CONSTANT(op_array, opline->op1); op_array 948 Zend/zend_compile.c op2 = RT_CONSTANT(op_array, opline->op2); op_array 960 Zend/zend_compile.c && old_function->op_array.last > 0) { op_array 963 Zend/zend_compile.c ZSTR_VAL(old_function->op_array.filename), op_array 964 Zend/zend_compile.c old_function->op_array.opcodes[0].lineno); op_array 970 Zend/zend_compile.c if (function->op_array.refcount) { op_array 971 Zend/zend_compile.c (*function->op_array.refcount)++; op_array 973 Zend/zend_compile.c function->op_array.static_variables = NULL; /* NULL out the unbound function */ op_array 979 Zend/zend_compile.c ZEND_API zend_class_entry *do_bind_class(const zend_op_array* op_array, const zend_op *opline, HashTable *class_table, zend_bool compile_time) /* {{{ */ op_array 985 Zend/zend_compile.c op1 = CT_CONSTANT_EX(op_array, opline->op1.constant); op_array 986 Zend/zend_compile.c op2 = CT_CONSTANT_EX(op_array, opline->op2.constant); op_array 988 Zend/zend_compile.c op1 = RT_CONSTANT(op_array, opline->op1); op_array 989 Zend/zend_compile.c op2 = RT_CONSTANT(op_array, opline->op2); op_array 1016 Zend/zend_compile.c ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array, const zend_op *opline, HashTable *class_table, zend_class_entry *parent_ce, zend_bool compile_time) /* {{{ */ op_array 1022 Zend/zend_compile.c op1 = CT_CONSTANT_EX(op_array, opline->op1.constant); op_array 1023 Zend/zend_compile.c op2 = CT_CONSTANT_EX(op_array, opline->op2.constant); op_array 1025 Zend/zend_compile.c op1 = RT_CONSTANT(op_array, opline->op1); op_array 1026 Zend/zend_compile.c op2 = RT_CONSTANT(op_array, opline->op2); op_array 1159 Zend/zend_compile.c ZEND_API void zend_do_delayed_early_binding(const zend_op_array *op_array) /* {{{ */ op_array 1161 Zend/zend_compile.c if (op_array->early_binding != (uint32_t)-1) { op_array 1163 Zend/zend_compile.c uint32_t opline_num = op_array->early_binding; op_array 1168 Zend/zend_compile.c zval *parent_name = RT_CONSTANT(op_array, op_array->opcodes[opline_num-1].op2); op_array 1170 Zend/zend_compile.c do_bind_inherited_class(op_array, &op_array->opcodes[opline_num], EG(class_table), ce, 0); op_array 1172 Zend/zend_compile.c opline_num = op_array->opcodes[opline_num].result.opline_num; op_array 1679 Zend/zend_compile.c ZEND_API zend_string *zend_get_compiled_variable_name(const zend_op_array *op_array, uint32_t var) /* {{{ */ op_array 1681 Zend/zend_compile.c return op_array->vars[EX_VAR_TO_NUM(var)]; op_array 3686 Zend/zend_compile.c void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline) /* {{{ */ op_array 3691 Zend/zend_compile.c uint32_t opnum = opline - op_array->opcodes; op_array 3693 Zend/zend_compile.c label = CT_CONSTANT_EX(op_array, opline->op2.constant); op_array 3698 Zend/zend_compile.c CG(active_op_array) = op_array; op_array 3707 Zend/zend_compile.c for (; current != dest->brk_cont; current = op_array->brk_cont_array[current].parent) { op_array 3710 Zend/zend_compile.c CG(active_op_array) = op_array; op_array 3714 Zend/zend_compile.c if (op_array->brk_cont_array[current].start >= 0) { op_array 3719 Zend/zend_compile.c for (current = 0; current < op_array->last_try_catch; ++current) { op_array 3720 Zend/zend_compile.c zend_try_catch_element *elem = &op_array->try_catch_array[current]; op_array 4424 Zend/zend_compile.c zend_op_array *op_array = CG(active_op_array); op_array 4431 Zend/zend_compile.c arg_infos->pass_by_reference = (op_array->fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0; op_array 4440 Zend/zend_compile.c op_array->fn_flags |= ZEND_ACC_HAS_RETURN_TYPE; op_array 4474 Zend/zend_compile.c if (op_array->scope && (op_array->fn_flags & ZEND_ACC_STATIC) == 0) { op_array 4477 Zend/zend_compile.c op_array->this_var = var_node.u.op.var; op_array 4480 Zend/zend_compile.c if (op_array->fn_flags & ZEND_ACC_VARIADIC) { op_array 4487 Zend/zend_compile.c op_array->fn_flags |= ZEND_ACC_VARIADIC; op_array 4504 Zend/zend_compile.c op_array->required_num_args = i + 1; op_array 4525 Zend/zend_compile.c op_array->fn_flags |= ZEND_ACC_HAS_TYPE_HINTS; op_array 4574 Zend/zend_compile.c Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) = -1; op_array 4578 Zend/zend_compile.c opline->op2.num = op_array->cache_size; op_array 4579 Zend/zend_compile.c op_array->cache_size += sizeof(void*); op_array 4586 Zend/zend_compile.c Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) = -1; op_array 4594 Zend/zend_compile.c op_array->num_args = list->children; op_array 4595 Zend/zend_compile.c op_array->arg_info = arg_infos; op_array 4598 Zend/zend_compile.c if (op_array->fn_flags & ZEND_ACC_VARIADIC) { op_array 4599 Zend/zend_compile.c op_array->num_args--; op_array 4601 Zend/zend_compile.c zend_set_function_arg_flags((zend_function*)op_array); op_array 4628 Zend/zend_compile.c void zend_begin_method_decl(zend_op_array *op_array, zend_string *name, zend_bool has_body) /* {{{ */ op_array 4633 Zend/zend_compile.c zend_bool is_public = (op_array->fn_flags & ZEND_ACC_PUBLIC) != 0; op_array 4634 Zend/zend_compile.c zend_bool is_static = (op_array->fn_flags & ZEND_ACC_STATIC) != 0; op_array 4639 Zend/zend_compile.c if ((op_array->fn_flags & ZEND_ACC_PPP_MASK) != ZEND_ACC_PUBLIC) { op_array 4643 Zend/zend_compile.c op_array->fn_flags |= ZEND_ACC_ABSTRACT; op_array 4646 Zend/zend_compile.c if (op_array->fn_flags & ZEND_ACC_ABSTRACT) { op_array 4647 Zend/zend_compile.c if (op_array->fn_flags & ZEND_ACC_PRIVATE) { op_array 4663 Zend/zend_compile.c op_array->scope = ce; op_array 4664 Zend/zend_compile.c op_array->function_name = zend_string_copy(name); op_array 4669 Zend/zend_compile.c if (zend_hash_add_ptr(&ce->function_table, lcname, op_array) == NULL) { op_array 4724 Zend/zend_compile.c ce->constructor = (zend_function *) op_array; op_array 4727 Zend/zend_compile.c ce->constructor = (zend_function *) op_array; op_array 4729 Zend/zend_compile.c ce->destructor = (zend_function *) op_array; op_array 4731 Zend/zend_compile.c ce->clone = (zend_function *) op_array; op_array 4737 Zend/zend_compile.c ce->__call = (zend_function *) op_array; op_array 4743 Zend/zend_compile.c ce->__callstatic = (zend_function *) op_array; op_array 4749 Zend/zend_compile.c ce->__get = (zend_function *) op_array; op_array 4756 Zend/zend_compile.c ce->__set = (zend_function *) op_array; op_array 4763 Zend/zend_compile.c ce->__unset = (zend_function *) op_array; op_array 4770 Zend/zend_compile.c ce->__isset = (zend_function *) op_array; op_array 4777 Zend/zend_compile.c ce->__tostring = (zend_function *) op_array; op_array 4788 Zend/zend_compile.c ce->__debugInfo = (zend_function *) op_array; op_array 4790 Zend/zend_compile.c op_array->fn_flags |= ZEND_ACC_ALLOW_STATIC; op_array 4798 Zend/zend_compile.c static void zend_begin_func_decl(znode *result, zend_op_array *op_array, zend_ast_decl *decl) /* {{{ */ op_array 4804 Zend/zend_compile.c op_array->function_name = name = zend_prefix_with_ns(name); op_array 4823 Zend/zend_compile.c if (op_array->fn_flags & ZEND_ACC_CLOSURE) { op_array 4838 Zend/zend_compile.c zend_hash_update_ptr(CG(function_table), key, op_array); op_array 4855 Zend/zend_compile.c zend_op_array *op_array = zend_arena_alloc(&CG(arena), sizeof(zend_op_array)); op_array 4858 Zend/zend_compile.c init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE); op_array 4860 Zend/zend_compile.c op_array->fn_flags |= (orig_op_array->fn_flags & ZEND_ACC_STRICT_TYPES); op_array 4861 Zend/zend_compile.c op_array->fn_flags |= decl->flags; op_array 4862 Zend/zend_compile.c op_array->line_start = decl->start_lineno; op_array 4863 Zend/zend_compile.c op_array->line_end = decl->end_lineno; op_array 4865 Zend/zend_compile.c op_array->doc_comment = zend_string_copy(decl->doc_comment); op_array 4868 Zend/zend_compile.c op_array->fn_flags |= ZEND_ACC_CLOSURE; op_array 4873 Zend/zend_compile.c zend_begin_method_decl(op_array, decl->name, has_body); op_array 4875 Zend/zend_compile.c zend_begin_func_decl(result, op_array, decl); op_array 4878 Zend/zend_compile.c CG(active_op_array) = op_array; op_array 4903 Zend/zend_compile.c CG(active_class_entry), (zend_function *) op_array, E_COMPILE_ERROR); op_array 5517 Zend/zend_compile.c && fn->op_array.filename == CG(compiled_filename) op_array 5707 Zend/zend_compile.c zend_op_array *op_array = CG(active_op_array); op_array 5737 Zend/zend_compile.c if (op_array && op_array->function_name) { op_array 5738 Zend/zend_compile.c ZVAL_STR_COPY(zv, op_array->function_name); op_array 5744 Zend/zend_compile.c if ((op_array && !op_array->scope && op_array->function_name) || (op_array->fn_flags & ZEND_ACC_CLOSURE)) { op_array 5745 Zend/zend_compile.c ZVAL_STR_COPY(zv, op_array->function_name); op_array 5747 Zend/zend_compile.c if (op_array && op_array->function_name) { op_array 5749 Zend/zend_compile.c ZSTR_VAL(op_array->function_name), ZSTR_LEN(op_array->function_name))); op_array 5753 Zend/zend_compile.c } else if (op_array && op_array->function_name) { op_array 5754 Zend/zend_compile.c ZVAL_STR_COPY(zv, op_array->function_name); op_array 419 Zend/zend_compile.h zend_op_array op_array; op_array 519 Zend/zend_compile.h #define ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline_num) \ op_array 520 Zend/zend_compile.h ((char*)&(op_array)->opcodes[opline_num] - (char*)(opline)) op_array 525 Zend/zend_compile.h #define ZEND_OFFSET_TO_OPLINE_NUM(op_array, base, offset) \ op_array 526 Zend/zend_compile.h (ZEND_OFFSET_TO_OPLINE(base, offset) - op_array->opcodes) op_array 535 Zend/zend_compile.h # define ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, node) do { \ op_array 536 Zend/zend_compile.h (node).jmp_addr = (op_array)->opcodes + (node).opline_num; \ op_array 540 Zend/zend_compile.h # define ZEND_PASS_TWO_UNDO_JMP_TARGET(op_array, opline, node) do { \ op_array 541 Zend/zend_compile.h (node).opline_num = (node).jmp_addr - (op_array)->opcodes; \ op_array 551 Zend/zend_compile.h # define ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, node) do { \ op_array 552 Zend/zend_compile.h (node).jmp_offset = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, (node).opline_num); \ op_array 556 Zend/zend_compile.h # define ZEND_PASS_TWO_UNDO_JMP_TARGET(op_array, opline, node) do { \ op_array 557 Zend/zend_compile.h (node).opline_num = ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, (node).jmp_offset); \ op_array 563 Zend/zend_compile.h # define CT_CONSTANT_EX(op_array, num) \ op_array 564 Zend/zend_compile.h ((op_array)->literals + (num)) op_array 576 Zend/zend_compile.h # define ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, node) do { \ op_array 577 Zend/zend_compile.h (node).zv = CT_CONSTANT_EX(op_array, (node).constant); \ op_array 581 Zend/zend_compile.h # define ZEND_PASS_TWO_UNDO_CONSTANT(op_array, node) do { \ op_array 582 Zend/zend_compile.h (node).constant = (node).zv - (op_array)->literals; \ op_array 592 Zend/zend_compile.h # define ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, node) do { \ op_array 597 Zend/zend_compile.h # define ZEND_PASS_TWO_UNDO_CONSTANT(op_array, node) do { \ op_array 608 Zend/zend_compile.h # define EX_LOAD_LITERALS(op_array) do { \ op_array 609 Zend/zend_compile.h EX(literals) = (op_array)->literals; \ op_array 615 Zend/zend_compile.h EX(func)->op_array.literals op_array 617 Zend/zend_compile.h # define EX_LOAD_LITERALS(op_array) do { \ op_array 623 Zend/zend_compile.h #define RT_CONSTANT(op_array, node) \ op_array 624 Zend/zend_compile.h RT_CONSTANT_EX((op_array)->literals, node) op_array 635 Zend/zend_compile.h # define EX_LOAD_RUN_TIME_CACHE(op_array) do { \ op_array 636 Zend/zend_compile.h EX(run_time_cache) = (op_array)->run_time_cache; \ op_array 642 Zend/zend_compile.h EX(func)->op_array.run_time_cache op_array 644 Zend/zend_compile.h # define EX_LOAD_RUN_TIME_CACHE(op_array) do { \ op_array 683 Zend/zend_compile.h ZEND_API zend_string *zend_get_compiled_variable_name(const zend_op_array *op_array, uint32_t var); op_array 706 Zend/zend_compile.h ZEND_API int do_bind_function(const zend_op_array *op_array, const zend_op *opline, HashTable *function_table, zend_bool compile_time); op_array 707 Zend/zend_compile.h ZEND_API zend_class_entry *do_bind_class(const zend_op_array *op_array, const zend_op *opline, HashTable *class_table, zend_bool compile_time); op_array 708 Zend/zend_compile.h ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array, const zend_op *opline, HashTable *class_table, zend_class_entry *parent_ce, zend_bool compile_time); op_array 709 Zend/zend_compile.h ZEND_API void zend_do_delayed_early_binding(const zend_op_array *op_array); op_array 717 Zend/zend_compile.h void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline); op_array 731 Zend/zend_compile.h ZEND_API void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_size); op_array 732 Zend/zend_compile.h ZEND_API void destroy_op_array(zend_op_array *op_array); op_array 737 Zend/zend_compile.h ZEND_API void zend_cleanup_op_array_data(zend_op_array *op_array); op_array 754 Zend/zend_compile.h zend_op *get_next_op(zend_op_array *op_array); op_array 756 Zend/zend_compile.h int get_next_op_number(zend_op_array *op_array); op_array 757 Zend/zend_compile.h ZEND_API int pass_two(zend_op_array *op_array); op_array 758 Zend/zend_compile.h zend_brk_cont_element *get_next_brk_cont_element(zend_op_array *op_array); op_array 782 Zend/zend_compile.h int zend_add_literal(zend_op_array *op_array, zval *zv); op_array 28 Zend/zend_dtrace.c ZEND_API void (*zend_dtrace_execute)(zend_op_array *op_array); op_array 40 Zend/zend_dtrace.c return ZSTR_VAL(ex->func->op_array.filename); op_array 34 Zend/zend_dtrace.h ZEND_API extern void (*zend_dtrace_execute)(zend_op_array *op_array); op_array 67 Zend/zend_execute.c static void zend_extension_statement_handler(const zend_extension *extension, zend_op_array *op_array); op_array 68 Zend/zend_execute.c static void zend_extension_fcall_begin_handler(const zend_extension *extension, zend_op_array *op_array); op_array 69 Zend/zend_execute.c static void zend_extension_fcall_end_handler(const zend_extension *extension, zend_op_array *op_array); op_array 124 Zend/zend_execute.c #define CV_DEF_OF(i) (EX(func)->op_array.vars[i]) op_array 649 Zend/zend_execute.c ZSTR_VAL(ptr->func->op_array.filename), ptr->opline->lineno); op_array 906 Zend/zend_execute.c zend_error(E_WARNING, "Missing argument %u for %s%s%s(), called in %s on line %d and defined", arg_num, class_name, space, func_name, ZSTR_VAL(ptr->func->op_array.filename), ptr->opline->lineno); op_array 1486 Zend/zend_execute.c static void zend_extension_statement_handler(const zend_extension *extension, zend_op_array *op_array) op_array 1489 Zend/zend_execute.c extension->statement_handler(op_array); op_array 1494 Zend/zend_execute.c static void zend_extension_fcall_begin_handler(const zend_extension *extension, zend_op_array *op_array) op_array 1497 Zend/zend_execute.c extension->fcall_begin_handler(op_array); op_array 1502 Zend/zend_execute.c static void zend_extension_fcall_end_handler(const zend_extension *extension, zend_op_array *op_array) op_array 1505 Zend/zend_execute.c extension->fcall_end_handler(op_array); op_array 1518 Zend/zend_execute.c ZEND_ASSERT(EX(func)->op_array.static_variables != NULL); op_array 1519 Zend/zend_execute.c ht = EX(func)->op_array.static_variables; op_array 1524 Zend/zend_execute.c EX(func)->op_array.static_variables = ht = zend_array_dup(ht); op_array 2055 Zend/zend_execute.c zval *end = cv + EX(func)->op_array.last_var; op_array 2108 Zend/zend_execute.c static zend_always_inline void i_init_func_execute_data(zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value, int check_this) /* {{{ */ op_array 2111 Zend/zend_execute.c ZEND_ASSERT(EX(func) == (zend_function*)op_array); op_array 2113 Zend/zend_execute.c EX(opline) = op_array->opcodes; op_array 2118 Zend/zend_execute.c first_extra_arg = op_array->num_args; op_array 2121 Zend/zend_execute.c if (EXPECTED(!(op_array->fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE))) { op_array 2125 Zend/zend_execute.c if (EXPECTED((op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) == 0)) { op_array 2133 Zend/zend_execute.c dst = src + (op_array->last_var + op_array->T - first_extra_arg); op_array 2150 Zend/zend_execute.c } else if (EXPECTED((op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) == 0)) { op_array 2156 Zend/zend_execute.c if (EXPECTED((int)num_args < op_array->last_var)) { op_array 2158 Zend/zend_execute.c zval *end = EX_VAR_NUM(op_array->last_var); op_array 2166 Zend/zend_execute.c if (check_this && op_array->this_var != (uint32_t)-1 && EXPECTED(Z_OBJ(EX(This)))) { op_array 2167 Zend/zend_execute.c ZVAL_OBJ(EX_VAR(op_array->this_var), Z_OBJ(EX(This))); op_array 2171 Zend/zend_execute.c if (UNEXPECTED(!op_array->run_time_cache)) { op_array 2172 Zend/zend_execute.c op_array->run_time_cache = zend_arena_alloc(&CG(arena), op_array->cache_size); op_array 2173 Zend/zend_execute.c memset(op_array->run_time_cache, 0, op_array->cache_size); op_array 2175 Zend/zend_execute.c EX_LOAD_RUN_TIME_CACHE(op_array); op_array 2176 Zend/zend_execute.c EX_LOAD_LITERALS(op_array); op_array 2183 Zend/zend_execute.c static zend_always_inline void i_init_code_execute_data(zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value) /* {{{ */ op_array 2185 Zend/zend_execute.c ZEND_ASSERT(EX(func) == (zend_function*)op_array); op_array 2187 Zend/zend_execute.c EX(opline) = op_array->opcodes; op_array 2191 Zend/zend_execute.c if (UNEXPECTED(op_array->this_var != (uint32_t)-1) && EXPECTED(Z_OBJ(EX(This)))) { op_array 2200 Zend/zend_execute.c if (!op_array->run_time_cache) { op_array 2201 Zend/zend_execute.c op_array->run_time_cache = emalloc(op_array->cache_size); op_array 2202 Zend/zend_execute.c memset(op_array->run_time_cache, 0, op_array->cache_size); op_array 2204 Zend/zend_execute.c EX_LOAD_RUN_TIME_CACHE(op_array); op_array 2205 Zend/zend_execute.c EX_LOAD_LITERALS(op_array); op_array 2212 Zend/zend_execute.c static zend_always_inline void i_init_execute_data(zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value) /* {{{ */ op_array 2214 Zend/zend_execute.c ZEND_ASSERT(EX(func) == (zend_function*)op_array); op_array 2216 Zend/zend_execute.c EX(opline) = op_array->opcodes; op_array 2221 Zend/zend_execute.c if (UNEXPECTED(op_array->this_var != (uint32_t)-1) && EXPECTED(Z_OBJ(EX(This)))) { op_array 2233 Zend/zend_execute.c first_extra_arg = op_array->num_args; op_array 2236 Zend/zend_execute.c if (EXPECTED(!(op_array->fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE))) { op_array 2240 Zend/zend_execute.c if (EXPECTED((op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) == 0)) { op_array 2248 Zend/zend_execute.c dst = src + (op_array->last_var + op_array->T - first_extra_arg); op_array 2265 Zend/zend_execute.c } else if (EXPECTED((op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) == 0)) { op_array 2271 Zend/zend_execute.c if (EXPECTED((int)num_args < op_array->last_var)) { op_array 2273 Zend/zend_execute.c zval *end = EX_VAR_NUM(op_array->last_var); op_array 2281 Zend/zend_execute.c if (op_array->this_var != (uint32_t)-1 && EXPECTED(Z_OBJ(EX(This)))) { op_array 2282 Zend/zend_execute.c ZVAL_OBJ(EX_VAR(op_array->this_var), Z_OBJ(EX(This))); op_array 2287 Zend/zend_execute.c if (!op_array->run_time_cache) { op_array 2288 Zend/zend_execute.c if (op_array->function_name) { op_array 2289 Zend/zend_execute.c op_array->run_time_cache = zend_arena_alloc(&CG(arena), op_array->cache_size); op_array 2291 Zend/zend_execute.c op_array->run_time_cache = emalloc(op_array->cache_size); op_array 2293 Zend/zend_execute.c memset(op_array->run_time_cache, 0, op_array->cache_size); op_array 2295 Zend/zend_execute.c EX_LOAD_RUN_TIME_CACHE(op_array); op_array 2296 Zend/zend_execute.c EX_LOAD_LITERALS(op_array); op_array 2303 Zend/zend_execute.c ZEND_API zend_execute_data *zend_create_generator_execute_data(zend_execute_data *call, zend_op_array *op_array, zval *return_value) /* {{{ */ op_array 2316 Zend/zend_execute.c size_t stack_size = (ZEND_CALL_FRAME_SLOT + MAX(op_array->last_var + op_array->T, num_args)) * sizeof(zval); op_array 2333 Zend/zend_execute.c (zend_function*)op_array, op_array 2355 Zend/zend_execute.c i_init_func_execute_data(execute_data, op_array, return_value, 1); op_array 2361 Zend/zend_execute.c ZEND_API void zend_init_execute_data(zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value) /* {{{ */ op_array 2364 Zend/zend_execute.c i_init_execute_data(execute_data, op_array, return_value); op_array 2435 Zend/zend_execute.c zend_op *opline = EX(func)->op_array.opcodes + op_num; op_array 2562 Zend/zend_execute.c for (i = 0; i < EX(func)->op_array.last_brk_cont; i++) { op_array 2563 Zend/zend_execute.c const zend_brk_cont_element *brk_cont = &EX(func)->op_array.brk_cont_array[i]; op_array 2571 Zend/zend_execute.c zend_op *brk_opline = &EX(func)->op_array.opcodes[brk_cont->brk]; op_array 2583 Zend/zend_execute.c zend_op *last = EX(func)->op_array.opcodes + op_num; op_array 2586 Zend/zend_execute.c ZEND_ASSERT(last >= EX(func)->op_array.opcodes); op_array 39 Zend/zend_execute.h ZEND_API void zend_init_execute_data(zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value); op_array 40 Zend/zend_execute.h ZEND_API zend_execute_data *zend_create_generator_execute_data(zend_execute_data *call, zend_op_array *op_array, zval *return_value); op_array 41 Zend/zend_execute.h ZEND_API void zend_execute(zend_op_array *op_array, zval *return_value); op_array 198 Zend/zend_execute.h used_stack += func->op_array.last_var + func->op_array.T - MIN(func->op_array.num_args, num_args); op_array 214 Zend/zend_execute.h zval *end = ZEND_CALL_VAR_NUM(call, call->func->op_array.last_var + call->func->op_array.T); op_array 215 Zend/zend_execute.h zval *p = end + (ZEND_CALL_NUM_ARGS(call) - call->func->op_array.num_args); op_array 484 Zend/zend_execute_API.c return ZSTR_VAL(ex->func->op_array.filename); op_array 499 Zend/zend_execute_API.c return ex->func->op_array.filename; op_array 848 Zend/zend_execute_API.c if (UNEXPECTED(func->op_array.fn_flags & ZEND_ACC_CLOSURE)) { op_array 849 Zend/zend_execute_API.c ZEND_ASSERT(GC_TYPE((zend_object*)func->op_array.prototype) == IS_OBJECT); op_array 850 Zend/zend_execute_API.c GC_REFCOUNT((zend_object*)func->op_array.prototype)++; op_array 861 Zend/zend_execute_API.c if (EXPECTED((func->op_array.fn_flags & ZEND_ACC_GENERATOR) == 0)) { op_array 862 Zend/zend_execute_API.c zend_init_execute_data(call, &func->op_array, fci->retval); op_array 865 Zend/zend_execute_API.c zend_generator_create_zval(call, &func->op_array, fci->retval); op_array 1491 Zend/zend_execute_API.c if (!ex->func->op_array.last_var) { op_array 1494 Zend/zend_execute_API.c zend_hash_extend(symbol_table, ex->func->op_array.last_var, 0); op_array 1497 Zend/zend_execute_API.c zend_hash_init(symbol_table, ex->func->op_array.last_var, NULL, ZVAL_PTR_DTOR, 0); op_array 1498 Zend/zend_execute_API.c if (!ex->func->op_array.last_var) { op_array 1504 Zend/zend_execute_API.c if (EXPECTED(ex->func->op_array.last_var)) { op_array 1505 Zend/zend_execute_API.c zend_string **str = ex->func->op_array.vars; op_array 1506 Zend/zend_execute_API.c zend_string **end = str + ex->func->op_array.last_var; op_array 1521 Zend/zend_execute_API.c zend_op_array *op_array = &execute_data->func->op_array; op_array 1526 Zend/zend_execute_API.c if (EXPECTED(op_array->last_var)) { op_array 1527 Zend/zend_execute_API.c zend_string **str = op_array->vars; op_array 1528 Zend/zend_execute_API.c zend_string **end = str + op_array->last_var; op_array 1556 Zend/zend_execute_API.c zend_op_array *op_array = &execute_data->func->op_array; op_array 1560 Zend/zend_execute_API.c if (EXPECTED(op_array->last_var)) { op_array 1561 Zend/zend_execute_API.c zend_string **str = op_array->vars; op_array 1562 Zend/zend_execute_API.c zend_string **end = str + op_array->last_var; op_array 1590 Zend/zend_execute_API.c zend_op_array *op_array = &execute_data->func->op_array; op_array 1592 Zend/zend_execute_API.c if (EXPECTED(op_array->last_var)) { op_array 1593 Zend/zend_execute_API.c zend_string **str = op_array->vars; op_array 1594 Zend/zend_execute_API.c zend_string **end = str + op_array->last_var; op_array 1600 Zend/zend_execute_API.c zval *var = EX_VAR_NUM(str - op_array->vars); op_array 1632 Zend/zend_execute_API.c zend_op_array *op_array = &execute_data->func->op_array; op_array 1633 Zend/zend_execute_API.c if (EXPECTED(op_array->last_var)) { op_array 1634 Zend/zend_execute_API.c zend_string **str = op_array->vars; op_array 1635 Zend/zend_execute_API.c zend_string **end = str + op_array->last_var; op_array 1641 Zend/zend_execute_API.c zval *var = EX_VAR_NUM(str - op_array->vars); op_array 273 Zend/zend_extensions.c zend_op_array *op_array; op_array 281 Zend/zend_extensions.c data->size += extension->op_array_persist_calc(data->op_array); op_array 288 Zend/zend_extensions.c size_t size = extension->op_array_persist(data->op_array, data->mem); op_array 296 Zend/zend_extensions.c ZEND_API size_t zend_extensions_op_array_persist_calc(zend_op_array *op_array) op_array 301 Zend/zend_extensions.c data.op_array = op_array; op_array 310 Zend/zend_extensions.c ZEND_API size_t zend_extensions_op_array_persist(zend_op_array *op_array, void *mem) op_array 315 Zend/zend_extensions.c data.op_array = op_array; op_array 50 Zend/zend_extensions.h typedef void (*op_array_handler_func_t)(zend_op_array *op_array); op_array 52 Zend/zend_extensions.h typedef void (*statement_handler_func_t)(zend_op_array *op_array); op_array 53 Zend/zend_extensions.h typedef void (*fcall_begin_handler_func_t)(zend_op_array *op_array); op_array 54 Zend/zend_extensions.h typedef void (*fcall_end_handler_func_t)(zend_op_array *op_array); op_array 56 Zend/zend_extensions.h typedef void (*op_array_ctor_func_t)(zend_op_array *op_array); op_array 57 Zend/zend_extensions.h typedef void (*op_array_dtor_func_t)(zend_op_array *op_array); op_array 58 Zend/zend_extensions.h typedef size_t (*op_array_persist_calc_func_t)(zend_op_array *op_array); op_array 59 Zend/zend_extensions.h typedef size_t (*op_array_persist_func_t)(zend_op_array *op_array, void *mem); op_array 132 Zend/zend_extensions.h ZEND_API size_t zend_extensions_op_array_persist_calc(zend_op_array *op_array); op_array 133 Zend/zend_extensions.h ZEND_API size_t zend_extensions_op_array_persist(zend_op_array *op_array, void *mem); op_array 38 Zend/zend_generators.c if (execute_data->opline != execute_data->func->op_array.opcodes) { op_array 40 Zend/zend_generators.c uint32_t op_num = execute_data->opline - execute_data->func->op_array.opcodes - 1; op_array 127 Zend/zend_generators.c if (EXPECTED(!ex) || EXPECTED(!(ex->func->op_array.fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK))) { op_array 133 Zend/zend_generators.c op_num = ex->opline - ex->func->op_array.opcodes - 1; op_array 138 Zend/zend_generators.c for (i = 0; i < ex->func->op_array.last_try_catch; i++) { op_array 139 Zend/zend_generators.c zend_try_catch_element *try_catch = &ex->func->op_array.try_catch_array[i]; op_array 154 Zend/zend_generators.c zval *fast_call = ZEND_CALL_VAR(ex, ex->func->op_array.opcodes[finally_op_end].op1.var); op_array 160 Zend/zend_generators.c ex->opline = &ex->func->op_array.opcodes[finally_op_num]; op_array 228 Zend/zend_generators.c ZEND_API void zend_generator_create_zval(zend_execute_data *call, zend_op_array *op_array, zval *return_value) /* {{{ */ op_array 239 Zend/zend_generators.c execute_data = zend_create_generator_execute_data(call, op_array, return_value); op_array 1077 Zend/zend_generators.c if (UNEXPECTED(by_ref) && !(generator->execute_data->func->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 102 Zend/zend_generators.h ZEND_API void zend_generator_create_zval(zend_execute_data *call, zend_op_array *op_array, zval *return_value); op_array 74 Zend/zend_inheritance.c if (func->op_array.refcount) { op_array 75 Zend/zend_inheritance.c (*func->op_array.refcount)++; op_array 77 Zend/zend_inheritance.c if (EXPECTED(!func->op_array.static_variables)) { op_array 81 Zend/zend_inheritance.c if (!(GC_FLAGS(func->op_array.static_variables) & IS_ARRAY_IMMUTABLE)) { op_array 82 Zend/zend_inheritance.c GC_REFCOUNT(func->op_array.static_variables)++; op_array 390 Zend/zend_inheritance.c if (fptr->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) { op_array 442 Zend/zend_inheritance.c zend_op *op = fptr->op_array.opcodes; op_array 443 Zend/zend_inheritance.c zend_op *end = op + fptr->op_array.last; op_array 456 Zend/zend_inheritance.c zval *zv = RT_CONSTANT(&fptr->op_array, precv->op2); op_array 595 Zend/zend_inheritance.c !func->op_array.static_variables) { op_array 1172 Zend/zend_inheritance.c if (fn->type == ZEND_USER_FUNCTION && fn->op_array.static_variables) { op_array 577 Zend/zend_language_scanner.c zend_op_array *op_array = NULL; op_array 598 Zend/zend_language_scanner.c op_array = emalloc(sizeof(zend_op_array)); op_array 599 Zend/zend_language_scanner.c init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE); op_array 600 Zend/zend_language_scanner.c CG(active_op_array) = op_array; op_array 611 Zend/zend_language_scanner.c op_array->line_start = 1; op_array 612 Zend/zend_language_scanner.c op_array->line_end = CG(zend_lineno); op_array 613 Zend/zend_language_scanner.c pass_two(op_array); op_array 626 Zend/zend_language_scanner.c return op_array; op_array 741 Zend/zend_language_scanner.c zend_op_array *op_array = NULL; op_array 764 Zend/zend_language_scanner.c op_array = emalloc(sizeof(zend_op_array)); op_array 765 Zend/zend_language_scanner.c init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE); op_array 766 Zend/zend_language_scanner.c CG(active_op_array) = op_array; op_array 776 Zend/zend_language_scanner.c op_array->line_start = 1; op_array 777 Zend/zend_language_scanner.c op_array->line_end = CG(zend_lineno); op_array 778 Zend/zend_language_scanner.c pass_two(op_array); op_array 792 Zend/zend_language_scanner.c return op_array; op_array 1039 Zend/zend_object_handlers.c func = &EG(trampoline).op_array; op_array 1058 Zend/zend_object_handlers.c func->T = (fbc->type == ZEND_USER_FUNCTION)? MAX(fbc->op_array.last_var + fbc->op_array.T, 2) : 2; op_array 1059 Zend/zend_object_handlers.c func->filename = (fbc->type == ZEND_USER_FUNCTION)? fbc->op_array.filename : ZSTR_EMPTY_ALLOC(); op_array 1060 Zend/zend_object_handlers.c func->line_start = (fbc->type == ZEND_USER_FUNCTION)? fbc->op_array.line_start : 0; op_array 1061 Zend/zend_object_handlers.c func->line_end = (fbc->type == ZEND_USER_FUNCTION)? fbc->op_array.line_end : 0; op_array 1112 Zend/zend_object_handlers.c if (fbc->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 1135 Zend/zend_object_handlers.c fbc->op_array.fn_flags & ZEND_ACC_CHANGED) { op_array 1231 Zend/zend_object_handlers.c if (fbc->op_array.fn_flags & ZEND_ACC_PUBLIC) { op_array 1233 Zend/zend_object_handlers.c } else if (fbc->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 1322 Zend/zend_object_handlers.c if (constructor->op_array.fn_flags & ZEND_ACC_PUBLIC) { op_array 1324 Zend/zend_object_handlers.c } else if (constructor->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 90 Zend/zend_objects.c if (destructor->op_array.fn_flags & (ZEND_ACC_PRIVATE|ZEND_ACC_PROTECTED)) { op_array 91 Zend/zend_objects.c if (destructor->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 33 Zend/zend_opcode.c static void zend_extension_op_array_ctor_handler(zend_extension *extension, zend_op_array *op_array) op_array 36 Zend/zend_opcode.c extension->op_array_ctor(op_array); op_array 40 Zend/zend_opcode.c static void zend_extension_op_array_dtor_handler(zend_extension *extension, zend_op_array *op_array) op_array 43 Zend/zend_opcode.c extension->op_array_dtor(op_array); op_array 47 Zend/zend_opcode.c static void op_array_alloc_ops(zend_op_array *op_array, uint32_t size) op_array 49 Zend/zend_opcode.c op_array->opcodes = erealloc(op_array->opcodes, size * sizeof(zend_op)); op_array 52 Zend/zend_opcode.c void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_size) op_array 54 Zend/zend_opcode.c op_array->type = type; op_array 55 Zend/zend_opcode.c op_array->arg_flags[0] = 0; op_array 56 Zend/zend_opcode.c op_array->arg_flags[1] = 0; op_array 57 Zend/zend_opcode.c op_array->arg_flags[2] = 0; op_array 59 Zend/zend_opcode.c op_array->refcount = (uint32_t *) emalloc(sizeof(uint32_t)); op_array 60 Zend/zend_opcode.c *op_array->refcount = 1; op_array 61 Zend/zend_opcode.c op_array->last = 0; op_array 62 Zend/zend_opcode.c op_array->opcodes = NULL; op_array 63 Zend/zend_opcode.c op_array_alloc_ops(op_array, initial_ops_size); op_array 65 Zend/zend_opcode.c op_array->last_var = 0; op_array 66 Zend/zend_opcode.c op_array->vars = NULL; op_array 68 Zend/zend_opcode.c op_array->T = 0; op_array 70 Zend/zend_opcode.c op_array->function_name = NULL; op_array 71 Zend/zend_opcode.c op_array->filename = zend_get_compiled_filename(); op_array 72 Zend/zend_opcode.c op_array->doc_comment = NULL; op_array 74 Zend/zend_opcode.c op_array->arg_info = NULL; op_array 75 Zend/zend_opcode.c op_array->num_args = 0; op_array 76 Zend/zend_opcode.c op_array->required_num_args = 0; op_array 78 Zend/zend_opcode.c op_array->scope = NULL; op_array 79 Zend/zend_opcode.c op_array->prototype = NULL; op_array 81 Zend/zend_opcode.c op_array->brk_cont_array = NULL; op_array 82 Zend/zend_opcode.c op_array->try_catch_array = NULL; op_array 83 Zend/zend_opcode.c op_array->last_brk_cont = 0; op_array 85 Zend/zend_opcode.c op_array->static_variables = NULL; op_array 86 Zend/zend_opcode.c op_array->last_try_catch = 0; op_array 88 Zend/zend_opcode.c op_array->this_var = -1; op_array 90 Zend/zend_opcode.c op_array->fn_flags = 0; op_array 92 Zend/zend_opcode.c op_array->early_binding = -1; op_array 94 Zend/zend_opcode.c op_array->last_literal = 0; op_array 95 Zend/zend_opcode.c op_array->literals = NULL; op_array 97 Zend/zend_opcode.c op_array->run_time_cache = NULL; op_array 98 Zend/zend_opcode.c op_array->cache_size = 0; op_array 100 Zend/zend_opcode.c memset(op_array->reserved, 0, ZEND_MAX_RESERVED_RESOURCES * sizeof(void*)); op_array 103 Zend/zend_opcode.c zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_op_array_ctor_handler, op_array); op_array 110 Zend/zend_opcode.c destroy_op_array(&function->op_array); op_array 124 Zend/zend_opcode.c destroy_op_array(&function->op_array); op_array 136 Zend/zend_opcode.c ZEND_API void zend_cleanup_op_array_data(zend_op_array *op_array) op_array 138 Zend/zend_opcode.c if (op_array->static_variables && op_array 139 Zend/zend_opcode.c !(GC_FLAGS(op_array->static_variables) & IS_ARRAY_IMMUTABLE)) { op_array 140 Zend/zend_opcode.c zend_hash_clean(op_array->static_variables); op_array 341 Zend/zend_opcode.c ZEND_API void destroy_op_array(zend_op_array *op_array) op_array 343 Zend/zend_opcode.c zval *literal = op_array->literals; op_array 347 Zend/zend_opcode.c if (op_array->static_variables && op_array 348 Zend/zend_opcode.c !(GC_FLAGS(op_array->static_variables) & IS_ARRAY_IMMUTABLE)) { op_array 349 Zend/zend_opcode.c if (--GC_REFCOUNT(op_array->static_variables) == 0) { op_array 350 Zend/zend_opcode.c zend_array_destroy(op_array->static_variables); op_array 354 Zend/zend_opcode.c if (op_array->run_time_cache && !op_array->function_name) { op_array 355 Zend/zend_opcode.c efree(op_array->run_time_cache); op_array 356 Zend/zend_opcode.c op_array->run_time_cache = NULL; op_array 359 Zend/zend_opcode.c if (!op_array->refcount || --(*op_array->refcount) > 0) { op_array 363 Zend/zend_opcode.c efree_size(op_array->refcount, sizeof(*(op_array->refcount))); op_array 365 Zend/zend_opcode.c if (op_array->vars) { op_array 366 Zend/zend_opcode.c i = op_array->last_var; op_array 369 Zend/zend_opcode.c zend_string_release(op_array->vars[i]); op_array 371 Zend/zend_opcode.c efree(op_array->vars); op_array 375 Zend/zend_opcode.c end = literal + op_array->last_literal; op_array 380 Zend/zend_opcode.c efree(op_array->literals); op_array 382 Zend/zend_opcode.c efree(op_array->opcodes); op_array 384 Zend/zend_opcode.c if (op_array->function_name) { op_array 385 Zend/zend_opcode.c zend_string_release(op_array->function_name); op_array 387 Zend/zend_opcode.c if (op_array->doc_comment) { op_array 388 Zend/zend_opcode.c zend_string_release(op_array->doc_comment); op_array 390 Zend/zend_opcode.c if (op_array->brk_cont_array) { op_array 391 Zend/zend_opcode.c efree(op_array->brk_cont_array); op_array 393 Zend/zend_opcode.c if (op_array->try_catch_array) { op_array 394 Zend/zend_opcode.c efree(op_array->try_catch_array); op_array 397 Zend/zend_opcode.c if (op_array->fn_flags & ZEND_ACC_DONE_PASS_TWO) { op_array 398 Zend/zend_opcode.c zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_op_array_dtor_handler, op_array); op_array 401 Zend/zend_opcode.c if (op_array->arg_info) { op_array 402 Zend/zend_opcode.c uint32_t num_args = op_array->num_args; op_array 403 Zend/zend_opcode.c zend_arg_info *arg_info = op_array->arg_info; op_array 405 Zend/zend_opcode.c if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { op_array 409 Zend/zend_opcode.c if (op_array->fn_flags & ZEND_ACC_VARIADIC) { op_array 431 Zend/zend_opcode.c zend_op *get_next_op(zend_op_array *op_array) op_array 433 Zend/zend_opcode.c uint32_t next_op_num = op_array->last++; op_array 438 Zend/zend_opcode.c op_array_alloc_ops(op_array, CG(context).opcodes_size); op_array 441 Zend/zend_opcode.c next_op = &(op_array->opcodes[next_op_num]); op_array 448 Zend/zend_opcode.c int get_next_op_number(zend_op_array *op_array) op_array 450 Zend/zend_opcode.c return op_array->last; op_array 453 Zend/zend_opcode.c zend_brk_cont_element *get_next_brk_cont_element(zend_op_array *op_array) op_array 455 Zend/zend_opcode.c op_array->last_brk_cont++; op_array 456 Zend/zend_opcode.c op_array->brk_cont_array = erealloc(op_array->brk_cont_array, sizeof(zend_brk_cont_element)*op_array->last_brk_cont); op_array 457 Zend/zend_opcode.c return &op_array->brk_cont_array[op_array->last_brk_cont-1]; op_array 460 Zend/zend_opcode.c static void zend_update_extended_info(zend_op_array *op_array) op_array 462 Zend/zend_opcode.c zend_op *opline = op_array->opcodes, *end=opline+op_array->last; op_array 483 Zend/zend_opcode.c static void zend_extension_op_array_handler(zend_extension *extension, zend_op_array *op_array) op_array 486 Zend/zend_opcode.c extension->op_array_handler(op_array); op_array 490 Zend/zend_opcode.c static void zend_check_finally_breakout(zend_op_array *op_array, uint32_t op_num, uint32_t dst_num) op_array 494 Zend/zend_opcode.c for (i = 0; i < op_array->last_try_catch; i++) { op_array 495 Zend/zend_opcode.c if ((op_num < op_array->try_catch_array[i].finally_op || op_array 496 Zend/zend_opcode.c op_num >= op_array->try_catch_array[i].finally_end) op_array 497 Zend/zend_opcode.c && (dst_num >= op_array->try_catch_array[i].finally_op && op_array 498 Zend/zend_opcode.c dst_num <= op_array->try_catch_array[i].finally_end)) { op_array 500 Zend/zend_opcode.c CG(active_op_array) = op_array; op_array 501 Zend/zend_opcode.c CG(zend_lineno) = op_array->opcodes[op_num].lineno; op_array 503 Zend/zend_opcode.c } else if ((op_num >= op_array->try_catch_array[i].finally_op op_array 504 Zend/zend_opcode.c && op_num <= op_array->try_catch_array[i].finally_end) op_array 505 Zend/zend_opcode.c && (dst_num > op_array->try_catch_array[i].finally_end op_array 506 Zend/zend_opcode.c || dst_num < op_array->try_catch_array[i].finally_op)) { op_array 508 Zend/zend_opcode.c CG(active_op_array) = op_array; op_array 509 Zend/zend_opcode.c CG(zend_lineno) = op_array->opcodes[op_num].lineno; op_array 515 Zend/zend_opcode.c static void zend_resolve_fast_call(zend_op_array *op_array, uint32_t op_num) op_array 520 Zend/zend_opcode.c for (i = 0; i < op_array->last_try_catch; i++) { op_array 521 Zend/zend_opcode.c if (op_num >= op_array->try_catch_array[i].finally_op op_array 522 Zend/zend_opcode.c && op_num < op_array->try_catch_array[i].finally_end) { op_array 523 Zend/zend_opcode.c finally_op_num = op_array->try_catch_array[i].finally_op; op_array 529 Zend/zend_opcode.c ZEND_ASSERT(op_array->opcodes[finally_op_num - 2].opcode == ZEND_FAST_CALL); op_array 530 Zend/zend_opcode.c op_array->opcodes[op_num].extended_value = ZEND_FAST_CALL_FROM_FINALLY; op_array 531 Zend/zend_opcode.c op_array->opcodes[op_num].op2.opline_num = finally_op_num - 2; op_array 535 Zend/zend_opcode.c static void zend_resolve_finally_ret(zend_op_array *op_array, uint32_t op_num) op_array 540 Zend/zend_opcode.c for (i = 0; i < op_array->last_try_catch; i++) { op_array 541 Zend/zend_opcode.c if (op_array->try_catch_array[i].try_op > op_num) { op_array 544 Zend/zend_opcode.c if (op_num < op_array->try_catch_array[i].finally_op) { op_array 545 Zend/zend_opcode.c finally_op_num = op_array->try_catch_array[i].finally_op; op_array 547 Zend/zend_opcode.c if (op_num < op_array->try_catch_array[i].catch_op) { op_array 548 Zend/zend_opcode.c catch_op_num = op_array->try_catch_array[i].catch_op; op_array 554 Zend/zend_opcode.c op_array->opcodes[op_num].extended_value = ZEND_FAST_RET_TO_FINALLY; op_array 555 Zend/zend_opcode.c op_array->opcodes[op_num].op2.opline_num = finally_op_num; op_array 558 Zend/zend_opcode.c op_array->opcodes[op_num].extended_value = ZEND_FAST_RET_TO_CATCH; op_array 559 Zend/zend_opcode.c op_array->opcodes[op_num].op2.opline_num = catch_op_num; op_array 563 Zend/zend_opcode.c static uint32_t zend_get_brk_cont_target(const zend_op_array *op_array, const zend_op *opline) { op_array 568 Zend/zend_opcode.c jmp_to = &op_array->brk_cont_array[array_offset]; op_array 577 Zend/zend_opcode.c ZEND_API int pass_two(zend_op_array *op_array) op_array 581 Zend/zend_opcode.c if (!ZEND_USER_CODE(op_array->type)) { op_array 585 Zend/zend_opcode.c zend_update_extended_info(op_array); op_array 589 Zend/zend_opcode.c zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_op_array_handler, op_array); op_array 593 Zend/zend_opcode.c if (CG(context).vars_size != op_array->last_var) { op_array 594 Zend/zend_opcode.c op_array->vars = (zend_string**) erealloc(op_array->vars, sizeof(zend_string*)*op_array->last_var); op_array 595 Zend/zend_opcode.c CG(context).vars_size = op_array->last_var; op_array 597 Zend/zend_opcode.c if (CG(context).opcodes_size != op_array->last) { op_array 598 Zend/zend_opcode.c op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, sizeof(zend_op)*op_array->last); op_array 599 Zend/zend_opcode.c CG(context).opcodes_size = op_array->last; op_array 601 Zend/zend_opcode.c if (CG(context).literals_size != op_array->last_literal) { op_array 602 Zend/zend_opcode.c op_array->literals = (zval*)erealloc(op_array->literals, sizeof(zval) * op_array->last_literal); op_array 603 Zend/zend_opcode.c CG(context).literals_size = op_array->last_literal; op_array 605 Zend/zend_opcode.c opline = op_array->opcodes; op_array 606 Zend/zend_opcode.c end = opline + op_array->last; op_array 610 Zend/zend_opcode.c opline->op1.opline_num = op_array->try_catch_array[opline->op1.num].finally_op; op_array 611 Zend/zend_opcode.c zend_resolve_fast_call(op_array, opline - op_array->opcodes); op_array 612 Zend/zend_opcode.c ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); op_array 615 Zend/zend_opcode.c zend_resolve_finally_ret(op_array, opline - op_array->opcodes); op_array 618 Zend/zend_opcode.c ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); op_array 622 Zend/zend_opcode.c opline->extended_value = (uint32_t)(zend_intptr_t)ZEND_CALL_VAR_NUM(NULL, op_array->last_var + opline->extended_value); op_array 627 Zend/zend_opcode.c uint32_t jmp_target = zend_get_brk_cont_target(op_array, opline); op_array 629 Zend/zend_opcode.c if (op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) { op_array 630 Zend/zend_opcode.c zend_check_finally_breakout(op_array, opline - op_array->opcodes, jmp_target); op_array 635 Zend/zend_opcode.c ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); op_array 639 Zend/zend_opcode.c zend_resolve_goto_label(op_array, opline); op_array 640 Zend/zend_opcode.c if (op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) { op_array 641 Zend/zend_opcode.c zend_check_finally_breakout(op_array, opline - op_array->opcodes, opline->op1.opline_num); op_array 646 Zend/zend_opcode.c ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); op_array 650 Zend/zend_opcode.c opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); op_array 662 Zend/zend_opcode.c ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op2); op_array 666 Zend/zend_opcode.c opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); op_array 669 Zend/zend_opcode.c if (op_array->fn_flags & ZEND_ACC_GENERATOR) { op_array 683 Zend/zend_opcode.c if (op_array->fn_flags & ZEND_ACC_GENERATOR) { op_array 689 Zend/zend_opcode.c ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline->op1); op_array 691 Zend/zend_opcode.c opline->op1.var = (uint32_t)(zend_intptr_t)ZEND_CALL_VAR_NUM(NULL, op_array->last_var + opline->op1.var); op_array 694 Zend/zend_opcode.c ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline->op2); op_array 696 Zend/zend_opcode.c opline->op2.var = (uint32_t)(zend_intptr_t)ZEND_CALL_VAR_NUM(NULL, op_array->last_var + opline->op2.var); op_array 699 Zend/zend_opcode.c opline->result.var = (uint32_t)(zend_intptr_t)ZEND_CALL_VAR_NUM(NULL, op_array->last_var + opline->result.var); op_array 705 Zend/zend_opcode.c op_array->fn_flags |= ZEND_ACC_DONE_PASS_TWO; op_array 2360 Zend/zend_vm_def.h OBJ_RELEASE((zend_object*)old_execute_data->func->op_array.prototype); op_array 2379 Zend/zend_vm_def.h EG(scope) = EX(func)->op_array.scope; op_array 2397 Zend/zend_vm_def.h destroy_op_array(&EX(func)->op_array); op_array 2420 Zend/zend_vm_def.h OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype); op_array 2428 Zend/zend_vm_def.h if (old_execute_data->func && ZEND_USER_CODE(old_execute_data->func->op_array.type)) { op_array 3582 Zend/zend_vm_def.h i_init_func_execute_data(call, &fbc->op_array, ret, 0); op_array 3602 Zend/zend_vm_def.h zend_generator_create_zval(call, &fbc->op_array, ret); op_array 3619 Zend/zend_vm_def.h i_init_func_execute_data(call, &fbc->op_array, ret, 0); op_array 3623 Zend/zend_vm_def.h EG(scope) = EX(func)->op_array.scope; op_array 3723 Zend/zend_vm_def.h zend_generator_create_zval(call, &fbc->op_array, ret); op_array 3727 Zend/zend_vm_def.h OBJ_RELEASE((zend_object*)fbc->op_array.prototype); op_array 3741 Zend/zend_vm_def.h i_init_func_execute_data(call, &fbc->op_array, ret, 1); op_array 3869 Zend/zend_vm_def.h EG(scope) = EX(func)->op_array.scope; op_array 3916 Zend/zend_vm_def.h && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) op_array 4149 Zend/zend_vm_def.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[opline->extended_value]); op_array 4172 Zend/zend_vm_def.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[opline->extended_value]); op_array 4723 Zend/zend_vm_def.h } else if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { op_array 4761 Zend/zend_vm_def.h if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { op_array 4791 Zend/zend_vm_def.h param = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T); op_array 4792 Zend/zend_vm_def.h if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { op_array 5017 Zend/zend_vm_def.h if (clone->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 5125 Zend/zend_vm_def.h EG(scope) = EX(func)->op_array.scope; op_array 6896 Zend/zend_vm_def.h Z_CE_P(EX_VAR(opline->result.var)) = do_bind_class(&EX(func)->op_array, opline, EG(class_table), 0); op_array 6905 Zend/zend_vm_def.h Z_CE_P(EX_VAR(opline->result.var)) = do_bind_inherited_class(&EX(func)->op_array, opline, EG(class_table), Z_CE_P(EX_VAR(opline->extended_value)), 0); op_array 6918 Zend/zend_vm_def.h do_bind_inherited_class(&EX(func)->op_array, opline, EG(class_table), Z_CE_P(EX_VAR(opline->extended_value)), 0); op_array 6968 Zend/zend_vm_def.h do_bind_function(&EX(func)->op_array, opline, EG(function_table), 0); op_array 7107 Zend/zend_vm_def.h uint32_t op_num = EG(opline_before_exception) - EX(func)->op_array.opcodes; op_array 7122 Zend/zend_vm_def.h op_num = EX(func)->op_array.brk_cont_array[exc_opline->op2.num].brk; op_array 7126 Zend/zend_vm_def.h for (i = 0; i < EX(func)->op_array.last_try_catch; i++) { op_array 7127 Zend/zend_vm_def.h if (EX(func)->op_array.try_catch_array[i].try_op > op_num) { op_array 7132 Zend/zend_vm_def.h if (op_num < EX(func)->op_array.try_catch_array[i].catch_op) { op_array 7133 Zend/zend_vm_def.h catch_op_num = EX(func)->op_array.try_catch_array[i].catch_op; op_array 7135 Zend/zend_vm_def.h if (op_num < EX(func)->op_array.try_catch_array[i].finally_op) { op_array 7136 Zend/zend_vm_def.h finally_op_num = EX(func)->op_array.try_catch_array[i].finally_op; op_array 7137 Zend/zend_vm_def.h finally_op_end = EX(func)->op_array.try_catch_array[i].finally_end; op_array 7139 Zend/zend_vm_def.h if (op_num >= EX(func)->op_array.try_catch_array[i].finally_op && op_array 7140 Zend/zend_vm_def.h op_num < EX(func)->op_array.try_catch_array[i].finally_end) { op_array 7141 Zend/zend_vm_def.h finally_op_end = EX(func)->op_array.try_catch_array[i].finally_end; op_array 7149 Zend/zend_vm_def.h zval *fast_call = EX_VAR(EX(func)->op_array.opcodes[finally_op_end].op1.var); op_array 7158 Zend/zend_vm_def.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[finally_op_num]); op_array 7164 Zend/zend_vm_def.h zval *fast_call = EX_VAR(EX(func)->op_array.opcodes[finally_op_end].op1.var); op_array 7172 Zend/zend_vm_def.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[catch_op_num]); op_array 7174 Zend/zend_vm_def.h } else if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_GENERATOR) != 0)) { op_array 7206 Zend/zend_vm_def.h if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_GENERATOR) != 0)) { op_array 7324 Zend/zend_vm_def.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 7561 Zend/zend_vm_def.h fast_call->u2.lineno = opline - EX(func)->op_array.opcodes; op_array 7573 Zend/zend_vm_def.h const zend_op *fast_ret = EX(func)->op_array.opcodes + fast_call->u2.lineno; op_array 7584 Zend/zend_vm_def.h cleanup_live_vars(execute_data, opline - EX(func)->op_array.opcodes, opline->op2.opline_num); op_array 7585 Zend/zend_vm_def.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[opline->op2.opline_num]); op_array 7591 Zend/zend_vm_def.h cleanup_live_vars(execute_data, opline - EX(func)->op_array.opcodes, opline->op2.opline_num); op_array 7592 Zend/zend_vm_def.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[opline->op2.opline_num]); op_array 7595 Zend/zend_vm_def.h cleanup_live_vars(execute_data, opline - EX(func)->op_array.opcodes, 0); op_array 7596 Zend/zend_vm_def.h if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_GENERATOR) != 0)) { op_array 7894 Zend/zend_vm_def.h i_init_func_execute_data(call, &fbc->op_array, op_array 7973 Zend/zend_vm_def.h EG(scope) = EX(func)->op_array.scope; op_array 441 Zend/zend_vm_execute.h ZEND_API void zend_execute(zend_op_array *op_array, zval *return_value) op_array 450 Zend/zend_vm_execute.h (zend_function*)op_array, 0, zend_get_called_scope(EG(current_execute_data)), zend_get_this_object(EG(current_execute_data))); op_array 457 Zend/zend_vm_execute.h i_init_execute_data(execute_data, op_array, return_value); op_array 478 Zend/zend_vm_execute.h OBJ_RELEASE((zend_object*)old_execute_data->func->op_array.prototype); op_array 497 Zend/zend_vm_execute.h EG(scope) = EX(func)->op_array.scope; op_array 515 Zend/zend_vm_execute.h destroy_op_array(&EX(func)->op_array); op_array 538 Zend/zend_vm_execute.h OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype); op_array 546 Zend/zend_vm_execute.h if (old_execute_data->func && ZEND_USER_CODE(old_execute_data->func->op_array.type)) { op_array 635 Zend/zend_vm_execute.h i_init_func_execute_data(call, &fbc->op_array, ret, 0); op_array 655 Zend/zend_vm_execute.h zend_generator_create_zval(call, &fbc->op_array, ret); op_array 672 Zend/zend_vm_execute.h i_init_func_execute_data(call, &fbc->op_array, ret, 0); op_array 676 Zend/zend_vm_execute.h EG(scope) = EX(func)->op_array.scope; op_array 776 Zend/zend_vm_execute.h zend_generator_create_zval(call, &fbc->op_array, ret); op_array 780 Zend/zend_vm_execute.h OBJ_RELEASE((zend_object*)fbc->op_array.prototype); op_array 794 Zend/zend_vm_execute.h i_init_func_execute_data(call, &fbc->op_array, ret, 1); op_array 922 Zend/zend_vm_execute.h EG(scope) = EX(func)->op_array.scope; op_array 1209 Zend/zend_vm_execute.h } else if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { op_array 1238 Zend/zend_vm_execute.h param = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T); op_array 1239 Zend/zend_vm_execute.h if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { op_array 1335 Zend/zend_vm_execute.h Z_CE_P(EX_VAR(opline->result.var)) = do_bind_class(&EX(func)->op_array, opline, EG(class_table), 0); op_array 1344 Zend/zend_vm_execute.h Z_CE_P(EX_VAR(opline->result.var)) = do_bind_inherited_class(&EX(func)->op_array, opline, EG(class_table), Z_CE_P(EX_VAR(opline->extended_value)), 0); op_array 1357 Zend/zend_vm_execute.h do_bind_inherited_class(&EX(func)->op_array, opline, EG(class_table), Z_CE_P(EX_VAR(opline->extended_value)), 0); op_array 1407 Zend/zend_vm_execute.h do_bind_function(&EX(func)->op_array, opline, EG(function_table), 0); op_array 1478 Zend/zend_vm_execute.h uint32_t op_num = EG(opline_before_exception) - EX(func)->op_array.opcodes; op_array 1493 Zend/zend_vm_execute.h op_num = EX(func)->op_array.brk_cont_array[exc_opline->op2.num].brk; op_array 1497 Zend/zend_vm_execute.h for (i = 0; i < EX(func)->op_array.last_try_catch; i++) { op_array 1498 Zend/zend_vm_execute.h if (EX(func)->op_array.try_catch_array[i].try_op > op_num) { op_array 1503 Zend/zend_vm_execute.h if (op_num < EX(func)->op_array.try_catch_array[i].catch_op) { op_array 1504 Zend/zend_vm_execute.h catch_op_num = EX(func)->op_array.try_catch_array[i].catch_op; op_array 1506 Zend/zend_vm_execute.h if (op_num < EX(func)->op_array.try_catch_array[i].finally_op) { op_array 1507 Zend/zend_vm_execute.h finally_op_num = EX(func)->op_array.try_catch_array[i].finally_op; op_array 1508 Zend/zend_vm_execute.h finally_op_end = EX(func)->op_array.try_catch_array[i].finally_end; op_array 1510 Zend/zend_vm_execute.h if (op_num >= EX(func)->op_array.try_catch_array[i].finally_op && op_array 1511 Zend/zend_vm_execute.h op_num < EX(func)->op_array.try_catch_array[i].finally_end) { op_array 1512 Zend/zend_vm_execute.h finally_op_end = EX(func)->op_array.try_catch_array[i].finally_end; op_array 1520 Zend/zend_vm_execute.h zval *fast_call = EX_VAR(EX(func)->op_array.opcodes[finally_op_end].op1.var); op_array 1529 Zend/zend_vm_execute.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[finally_op_num]); op_array 1535 Zend/zend_vm_execute.h zval *fast_call = EX_VAR(EX(func)->op_array.opcodes[finally_op_end].op1.var); op_array 1543 Zend/zend_vm_execute.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[catch_op_num]); op_array 1545 Zend/zend_vm_execute.h } else if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_GENERATOR) != 0)) { op_array 1577 Zend/zend_vm_execute.h if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_GENERATOR) != 0)) { op_array 1621 Zend/zend_vm_execute.h fast_call->u2.lineno = opline - EX(func)->op_array.opcodes; op_array 1633 Zend/zend_vm_execute.h const zend_op *fast_ret = EX(func)->op_array.opcodes + fast_call->u2.lineno; op_array 1644 Zend/zend_vm_execute.h cleanup_live_vars(execute_data, opline - EX(func)->op_array.opcodes, opline->op2.opline_num); op_array 1645 Zend/zend_vm_execute.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[opline->op2.opline_num]); op_array 1651 Zend/zend_vm_execute.h cleanup_live_vars(execute_data, opline - EX(func)->op_array.opcodes, opline->op2.opline_num); op_array 1652 Zend/zend_vm_execute.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[opline->op2.opline_num]); op_array 1655 Zend/zend_vm_execute.h cleanup_live_vars(execute_data, opline - EX(func)->op_array.opcodes, 0); op_array 1656 Zend/zend_vm_execute.h if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_GENERATOR) != 0)) { op_array 1764 Zend/zend_vm_execute.h i_init_func_execute_data(call, &fbc->op_array, op_array 1843 Zend/zend_vm_execute.h EG(scope) = EX(func)->op_array.scope; op_array 2229 Zend/zend_vm_execute.h if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { op_array 3447 Zend/zend_vm_execute.h if (clone->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 5959 Zend/zend_vm_execute.h EG(scope) = EX(func)->op_array.scope; op_array 6540 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 6717 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 7259 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 7775 Zend/zend_vm_execute.h && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) op_array 8157 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 9562 Zend/zend_vm_execute.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[opline->extended_value]); op_array 9585 Zend/zend_vm_execute.h ZEND_VM_SET_OPCODE(&EX(func)->op_array.opcodes[opline->extended_value]); op_array 10013 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 13057 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 13234 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 13411 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 13601 Zend/zend_vm_execute.h && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) op_array 13781 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 14330 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 17748 Zend/zend_vm_execute.h EG(scope) = EX(func)->op_array.scope; op_array 18071 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 18277 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 18543 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 19335 Zend/zend_vm_execute.h && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) op_array 19532 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 21227 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 22834 Zend/zend_vm_execute.h if (clone->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 23962 Zend/zend_vm_execute.h EG(scope) = EX(func)->op_array.scope; op_array 24369 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 24510 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 24651 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 25109 Zend/zend_vm_execute.h && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) op_array 25190 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 26677 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 29018 Zend/zend_vm_execute.h if (clone->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 32824 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 33120 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 33793 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 34628 Zend/zend_vm_execute.h && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) op_array 34988 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 37684 Zend/zend_vm_execute.h if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 40600 Zend/zend_vm_execute.h if (clone->op_array.fn_flags & ZEND_ACC_PRIVATE) { op_array 71 ext/opcache/Optimizer/block_pass.c # define BLOCK_REF(b) b?op_array->opcodes-b->start_opline:-1 op_array 108 ext/opcache/Optimizer/block_pass.c #define START_BLOCK_OP(opno) blocks[opno].start_opline = &op_array->opcodes[opno]; blocks[opno].start_opline_no = opno; blocks[opno].access = 1 op_array 113 ext/opcache/Optimizer/block_pass.c static int find_code_blocks(zend_op_array *op_array, zend_cfg *cfg, zend_optimizer_ctx *ctx) op_array 116 ext/opcache/Optimizer/block_pass.c zend_op *end = op_array->opcodes + op_array->last; op_array 121 ext/opcache/Optimizer/block_pass.c blocks = cfg->blocks = zend_arena_calloc(&ctx->arena, op_array->last + 2, sizeof(zend_code_block)); op_array 122 ext/opcache/Optimizer/block_pass.c opline = op_array->opcodes; op_array 185 ext/opcache/Optimizer/block_pass.c if (op_array->last_try_catch) { op_array 187 ext/opcache/Optimizer/block_pass.c cfg->try = zend_arena_calloc(&ctx->arena, op_array->last_try_catch, sizeof(zend_code_block *)); op_array 188 ext/opcache/Optimizer/block_pass.c cfg->catch = zend_arena_calloc(&ctx->arena, op_array->last_try_catch, sizeof(zend_code_block *)); op_array 189 ext/opcache/Optimizer/block_pass.c for (i = 0; i< op_array->last_try_catch; i++) { op_array 190 ext/opcache/Optimizer/block_pass.c cfg->try[i] = &blocks[op_array->try_catch_array[i].try_op]; op_array 191 ext/opcache/Optimizer/block_pass.c cfg->catch[i] = &blocks[op_array->try_catch_array[i].catch_op]; op_array 192 ext/opcache/Optimizer/block_pass.c START_BLOCK_OP(op_array->try_catch_array[i].try_op); op_array 193 ext/opcache/Optimizer/block_pass.c START_BLOCK_OP(op_array->try_catch_array[i].catch_op); op_array 194 ext/opcache/Optimizer/block_pass.c blocks[op_array->try_catch_array[i].try_op].protected = 1; op_array 200 ext/opcache/Optimizer/block_pass.c if (op_array->last_brk_cont) { op_array 204 ext/opcache/Optimizer/block_pass.c for (i = 0; i< op_array->last_brk_cont; i++) { op_array 205 ext/opcache/Optimizer/block_pass.c if (op_array->brk_cont_array[i].start >= 0 && op_array 206 ext/opcache/Optimizer/block_pass.c (op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_FREE || op_array 207 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_FE_FREE || op_array 208 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_ROPE_END || op_array 209 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_END_SILENCE)) { op_array 210 ext/opcache/Optimizer/block_pass.c int parent = op_array->brk_cont_array[i].parent; op_array 213 ext/opcache/Optimizer/block_pass.c op_array->brk_cont_array[parent].start < 0 && op_array 214 ext/opcache/Optimizer/block_pass.c (op_array->opcodes[op_array->brk_cont_array[parent].brk].opcode != ZEND_FREE || op_array 215 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[parent].brk].opcode != ZEND_FE_FREE || op_array 216 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[i].brk].opcode != ZEND_ROPE_END || op_array 217 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[parent].brk].opcode != ZEND_END_SILENCE)) { op_array 218 ext/opcache/Optimizer/block_pass.c parent = op_array->brk_cont_array[parent].parent; op_array 220 ext/opcache/Optimizer/block_pass.c op_array->brk_cont_array[i].parent = parent; op_array 225 ext/opcache/Optimizer/block_pass.c cfg->loop_start = zend_arena_calloc(&ctx->arena, op_array->last_brk_cont, sizeof(zend_code_block *)); op_array 226 ext/opcache/Optimizer/block_pass.c cfg->loop_cont = zend_arena_calloc(&ctx->arena, op_array->last_brk_cont, sizeof(zend_code_block *)); op_array 227 ext/opcache/Optimizer/block_pass.c cfg->loop_brk = zend_arena_calloc(&ctx->arena, op_array->last_brk_cont, sizeof(zend_code_block *)); op_array 229 ext/opcache/Optimizer/block_pass.c for (i = 0; i< op_array->last_brk_cont; i++) { op_array 230 ext/opcache/Optimizer/block_pass.c if (op_array->brk_cont_array[i].start >= 0 && op_array 231 ext/opcache/Optimizer/block_pass.c (op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_FREE || op_array 232 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_FE_FREE || op_array 233 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_ROPE_END || op_array 234 ext/opcache/Optimizer/block_pass.c op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_END_SILENCE)) { op_array 236 ext/opcache/Optimizer/block_pass.c op_array->brk_cont_array[j] = op_array->brk_cont_array[i]; op_array 238 ext/opcache/Optimizer/block_pass.c cfg->loop_start[j] = &blocks[op_array->brk_cont_array[j].start]; op_array 239 ext/opcache/Optimizer/block_pass.c cfg->loop_cont[j] = &blocks[op_array->brk_cont_array[j].cont]; op_array 240 ext/opcache/Optimizer/block_pass.c cfg->loop_brk[j] = &blocks[op_array->brk_cont_array[j].brk]; op_array 241 ext/opcache/Optimizer/block_pass.c START_BLOCK_OP(op_array->brk_cont_array[j].start); op_array 242 ext/opcache/Optimizer/block_pass.c START_BLOCK_OP(op_array->brk_cont_array[j].cont); op_array 243 ext/opcache/Optimizer/block_pass.c START_BLOCK_OP(op_array->brk_cont_array[j].brk); op_array 244 ext/opcache/Optimizer/block_pass.c blocks[op_array->brk_cont_array[j].start].protected = 1; op_array 245 ext/opcache/Optimizer/block_pass.c blocks[op_array->brk_cont_array[j].brk].protected = 1; op_array 249 ext/opcache/Optimizer/block_pass.c op_array->last_brk_cont = j; op_array 251 ext/opcache/Optimizer/block_pass.c efree(op_array->brk_cont_array); op_array 252 ext/opcache/Optimizer/block_pass.c op_array->brk_cont_array = NULL; op_array 253 ext/opcache/Optimizer/block_pass.c op_array->last_brk_cont = 0; op_array 259 ext/opcache/Optimizer/block_pass.c for (opno = 1; opno < op_array->last; opno++) { op_array 325 ext/opcache/Optimizer/block_pass.c print_block(cur_block, op_array->opcodes, ""); op_array 330 ext/opcache/Optimizer/block_pass.c cur_block->next = &blocks[op_array->last + 1]; op_array 331 ext/opcache/Optimizer/block_pass.c print_block(cur_block, op_array->opcodes, ""); op_array 507 ext/opcache/Optimizer/block_pass.c static void zend_rebuild_access_path(zend_cfg *cfg, zend_op_array *op_array, int find_start, zend_optimizer_ctx *ctx) op_array 528 ext/opcache/Optimizer/block_pass.c if (op_array->last_brk_cont) { op_array 530 ext/opcache/Optimizer/block_pass.c for (i=0; i< op_array->last_brk_cont; i++) { op_array 538 ext/opcache/Optimizer/block_pass.c if (op_array->last_try_catch) { op_array 540 ext/opcache/Optimizer/block_pass.c for (i=0; i< op_array->last_try_catch; i++) { op_array 609 ext/opcache/Optimizer/block_pass.c static void zend_optimize_block(zend_code_block *block, zend_op_array *op_array, zend_bitset used_ext, zend_cfg *cfg, zend_optimizer_ctx *ctx) op_array 615 ext/opcache/Optimizer/block_pass.c print_block(block, op_array->opcodes, "Opt "); op_array 632 ext/opcache/Optimizer/block_pass.c memset(Tsource, 0, (op_array->last_var + op_array->T) * sizeof(zend_op *)); op_array 635 ext/opcache/Optimizer/block_pass.c while ((op_array->T) && (opline < end)) { op_array 650 ext/opcache/Optimizer/block_pass.c if (zend_optimizer_update_op1_const(op_array, opline, &c)) { op_array 666 ext/opcache/Optimizer/block_pass.c if (zend_optimizer_update_op2_const(op_array, opline, &c)) { op_array 744 ext/opcache/Optimizer/block_pass.c ZEND_OP1_LITERAL(opline) = zend_optimizer_add_literal(op_array, &c); op_array 1016 ext/opcache/Optimizer/block_pass.c zend_optimizer_update_op1_const(op_array, opline, &result); op_array 1036 ext/opcache/Optimizer/block_pass.c zend_optimizer_update_op1_const(op_array, opline, &result); op_array 1139 ext/opcache/Optimizer/block_pass.c static void assemble_code_blocks(zend_cfg *cfg, zend_op_array *op_array) op_array 1142 ext/opcache/Optimizer/block_pass.c zend_op *new_opcodes = emalloc(op_array->last * sizeof(zend_op)); op_array 1183 ext/opcache/Optimizer/block_pass.c op_array->last = opline-new_opcodes; op_array 1186 ext/opcache/Optimizer/block_pass.c if (op_array->last_try_catch) { op_array 1188 ext/opcache/Optimizer/block_pass.c for (i = 0, j = 0; i< op_array->last_try_catch; i++) { op_array 1190 ext/opcache/Optimizer/block_pass.c op_array->try_catch_array[j].try_op = cfg->try[i]->start_opline - new_opcodes; op_array 1191 ext/opcache/Optimizer/block_pass.c op_array->try_catch_array[j].catch_op = cfg->catch[i]->start_opline - new_opcodes; op_array 1195 ext/opcache/Optimizer/block_pass.c op_array->last_try_catch = j; op_array 1199 ext/opcache/Optimizer/block_pass.c if (op_array->last_brk_cont) { op_array 1201 ext/opcache/Optimizer/block_pass.c for (i = 0; i< op_array->last_brk_cont; i++) { op_array 1202 ext/opcache/Optimizer/block_pass.c op_array->brk_cont_array[i].start = cfg->loop_start[i]->start_opline - new_opcodes; op_array 1203 ext/opcache/Optimizer/block_pass.c op_array->brk_cont_array[i].cont = cfg->loop_cont[i]->start_opline - new_opcodes; op_array 1204 ext/opcache/Optimizer/block_pass.c op_array->brk_cont_array[i].brk = cfg->loop_brk[i]->start_opline - new_opcodes; op_array 1228 ext/opcache/Optimizer/block_pass.c efree(op_array->opcodes); op_array 1229 ext/opcache/Optimizer/block_pass.c op_array->opcodes = erealloc(new_opcodes, op_array->last * sizeof(zend_op)); op_array 1232 ext/opcache/Optimizer/block_pass.c if (op_array->early_binding != (uint32_t)-1) { op_array 1233 ext/opcache/Optimizer/block_pass.c uint32_t *opline_num = &op_array->early_binding; op_array 1236 ext/opcache/Optimizer/block_pass.c opline = op_array->opcodes; op_array 1237 ext/opcache/Optimizer/block_pass.c end = opline + op_array->last; op_array 1240 ext/opcache/Optimizer/block_pass.c *opline_num = opline - op_array->opcodes; op_array 1249 ext/opcache/Optimizer/block_pass.c static void zend_jmp_optimization(zend_code_block *block, zend_op_array *op_array, zend_code_block *blocks, zend_cfg *cfg, zend_optimizer_ctx *ctx) op_array 1291 ext/opcache/Optimizer/block_pass.c last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv); op_array 1317 ext/opcache/Optimizer/block_pass.c last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv); op_array 1325 ext/opcache/Optimizer/block_pass.c op_array->last_try_catch == 0 && op_array 1575 ext/opcache/Optimizer/block_pass.c int var_num = op_array->last_var + op_array->T; op_array 1787 ext/opcache/Optimizer/block_pass.c static void zend_t_usage(zend_code_block *block, zend_op_array *op_array, zend_bitset used_ext, zend_optimizer_ctx *ctx) op_array 1795 ext/opcache/Optimizer/block_pass.c if (op_array->T == 0) { op_array 1801 ext/opcache/Optimizer/block_pass.c bitset_len = zend_bitset_len(op_array->last_var + op_array->T); op_array 1843 ext/opcache/Optimizer/block_pass.c for (i = op_array->last_var; i< op_array->T; i++) { op_array 1939 ext/opcache/Optimizer/block_pass.c void optimize_cfg(zend_op_array *op_array, zend_optimizer_ctx *ctx) op_array 1949 ext/opcache/Optimizer/block_pass.c fprintf(stderr, "File %s func %s\n", op_array->filename, op_array->function_name? op_array->function_name : "main"); op_array 1953 ext/opcache/Optimizer/block_pass.c if (op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) { op_array 1959 ext/opcache/Optimizer/block_pass.c if (!find_code_blocks(op_array, &cfg, ctx)) { op_array 1964 ext/opcache/Optimizer/block_pass.c zend_rebuild_access_path(&cfg, op_array, 0, ctx); op_array 1966 ext/opcache/Optimizer/block_pass.c if (op_array->last_var || op_array->T) { op_array 1967 ext/opcache/Optimizer/block_pass.c bitset_len = zend_bitset_len(op_array->last_var + op_array->T); op_array 1968 ext/opcache/Optimizer/block_pass.c cfg.Tsource = zend_arena_calloc(&ctx->arena, op_array->last_var + op_array->T, sizeof(zend_op *)); op_array 1969 ext/opcache/Optimizer/block_pass.c cfg.same_t = zend_arena_alloc(&ctx->arena, op_array->last_var + op_array->T); op_array 1980 ext/opcache/Optimizer/block_pass.c zend_t_usage(cfg.blocks, op_array, usage, ctx); op_array 1987 ext/opcache/Optimizer/block_pass.c zend_optimize_block(cur_block, op_array, usage, &cfg, ctx); op_array 1995 ext/opcache/Optimizer/block_pass.c zend_jmp_optimization(cur_block, op_array, cfg.blocks, &cfg, ctx); op_array 1999 ext/opcache/Optimizer/block_pass.c zend_rebuild_access_path(&cfg, op_array, 1, ctx); op_array 2003 ext/opcache/Optimizer/block_pass.c zend_t_usage(cfg.blocks, op_array, usage, ctx); op_array 2004 ext/opcache/Optimizer/block_pass.c assemble_code_blocks(&cfg, op_array); op_array 87 ext/opcache/Optimizer/compact_literals.c zend_op_array *op_array) op_array 93 ext/opcache/Optimizer/compact_literals.c if (Z_TYPE(op_array->literals[constant]) == IS_STRING && op_array 95 ext/opcache/Optimizer/compact_literals.c LITERAL_INFO_OBJ(constant, kind, 1, slots, related, op_array->this_var); op_array 108 ext/opcache/Optimizer/compact_literals.c zend_op_array *op_array) op_array 117 ext/opcache/Optimizer/compact_literals.c void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx *ctx) op_array 130 ext/opcache/Optimizer/compact_literals.c if (op_array->last_literal) { op_array 132 ext/opcache/Optimizer/compact_literals.c info = (literal_info*)zend_arena_calloc(&ctx->arena, op_array->last_literal, sizeof(literal_info)); op_array 135 ext/opcache/Optimizer/compact_literals.c opline = op_array->opcodes; op_array 136 ext/opcache/Optimizer/compact_literals.c end = opline + op_array->last; op_array 156 ext/opcache/Optimizer/compact_literals.c op_array); op_array 170 ext/opcache/Optimizer/compact_literals.c op_array); op_array 196 ext/opcache/Optimizer/compact_literals.c op_array); op_array 222 ext/opcache/Optimizer/compact_literals.c op_array); op_array 259 ext/opcache/Optimizer/compact_literals.c op_array); op_array 282 ext/opcache/Optimizer/compact_literals.c op_array); op_array 293 ext/opcache/Optimizer/compact_literals.c if (Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) != -1) { op_array 294 ext/opcache/Optimizer/compact_literals.c Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) = cache_size; op_array 320 ext/opcache/Optimizer/compact_literals.c fprintf(stderr, "File %s func %s\n", op_array->filename->val, op_array 321 ext/opcache/Optimizer/compact_literals.c op_array->function_name ? op_array->function_name->val : "main"); op_array 322 ext/opcache/Optimizer/compact_literals.c fprintf(stderr, "Literlas table size %d\n", op_array->last_literal); op_array 324 ext/opcache/Optimizer/compact_literals.c for (i = 0; i < op_array->last_literal; i++) { op_array 326 ext/opcache/Optimizer/compact_literals.c ZVAL_COPY_VALUE(&zv, op_array->literals + i); op_array 327 ext/opcache/Optimizer/compact_literals.c use_copy = zend_make_printable_zval(op_array->literals + i, &zv); op_array 339 ext/opcache/Optimizer/compact_literals.c zend_hash_init(&hash, op_array->last_literal, NULL, NULL, 0); op_array 340 ext/opcache/Optimizer/compact_literals.c map = (int*)zend_arena_alloc(&ctx->arena, op_array->last_literal * sizeof(int)); op_array 341 ext/opcache/Optimizer/compact_literals.c memset(map, 0, op_array->last_literal * sizeof(int)); op_array 342 ext/opcache/Optimizer/compact_literals.c for (i = 0; i < op_array->last_literal; i++) { op_array 345 ext/opcache/Optimizer/compact_literals.c zval_dtor(&op_array->literals[i]); op_array 348 ext/opcache/Optimizer/compact_literals.c switch (Z_TYPE(op_array->literals[i])) { op_array 356 ext/opcache/Optimizer/compact_literals.c op_array->literals[j] = op_array->literals[i]; op_array 365 ext/opcache/Optimizer/compact_literals.c op_array->literals[j] = op_array->literals[i]; op_array 375 ext/opcache/Optimizer/compact_literals.c op_array->literals[j] = op_array->literals[i]; op_array 386 ext/opcache/Optimizer/compact_literals.c op_array->literals[j] = op_array->literals[i]; op_array 394 ext/opcache/Optimizer/compact_literals.c if ((pos = zend_hash_index_find(&hash, Z_LVAL(op_array->literals[i]))) != NULL) { op_array 399 ext/opcache/Optimizer/compact_literals.c zend_hash_index_add_new(&hash, Z_LVAL(op_array->literals[i]), &zv); op_array 401 ext/opcache/Optimizer/compact_literals.c op_array->literals[j] = op_array->literals[i]; op_array 408 ext/opcache/Optimizer/compact_literals.c if ((pos = zend_hash_str_find(&hash, (char*)&Z_DVAL(op_array->literals[i]), sizeof(double))) != NULL) { op_array 413 ext/opcache/Optimizer/compact_literals.c zend_hash_str_add(&hash, (char*)&Z_DVAL(op_array->literals[i]), sizeof(double), &zv); op_array 415 ext/opcache/Optimizer/compact_literals.c op_array->literals[j] = op_array->literals[i]; op_array 425 ext/opcache/Optimizer/compact_literals.c int key_len = MAX_LENGTH_OF_LONG + sizeof("->") - 1 + Z_STRLEN(op_array->literals[i]); op_array 427 ext/opcache/Optimizer/compact_literals.c ZSTR_LEN(key) = snprintf(ZSTR_VAL(key), ZSTR_LEN(key)-1, "%d->%s", info[i].u.num, Z_STRVAL(op_array->literals[i])); op_array 430 ext/opcache/Optimizer/compact_literals.c zval *class_name = &op_array->literals[(info[i].u.num < i) ? map[info[i].u.num] : info[i].u.num]; op_array 431 ext/opcache/Optimizer/compact_literals.c key_len = Z_STRLEN_P(class_name) + sizeof("::") - 1 + Z_STRLEN(op_array->literals[i]); op_array 436 ext/opcache/Optimizer/compact_literals.c Z_STRVAL(op_array->literals[i]), op_array 437 ext/opcache/Optimizer/compact_literals.c Z_STRLEN(op_array->literals[i]) + 1); op_array 439 ext/opcache/Optimizer/compact_literals.c key = zend_string_init(Z_STRVAL(op_array->literals[i]), Z_STRLEN(op_array->literals[i]), 0); op_array 446 ext/opcache/Optimizer/compact_literals.c Z_TYPE(op_array->literals[i]) == Z_TYPE(op_array->literals[Z_LVAL_P(pos)]) && op_array 451 ext/opcache/Optimizer/compact_literals.c zval_dtor(&op_array->literals[i]); op_array 455 ext/opcache/Optimizer/compact_literals.c zval_dtor(&op_array->literals[i]); op_array 466 ext/opcache/Optimizer/compact_literals.c op_array->literals[j] = op_array->literals[i]; op_array 470 ext/opcache/Optimizer/compact_literals.c Z_CACHE_SLOT(op_array->literals[j]) = cache_size; op_array 477 ext/opcache/Optimizer/compact_literals.c if (i != j) op_array->literals[j] = op_array->literals[i]; op_array 487 ext/opcache/Optimizer/compact_literals.c op_array->literals[j] = op_array->literals[i]; op_array 495 ext/opcache/Optimizer/compact_literals.c op_array->last_literal = j; op_array 496 ext/opcache/Optimizer/compact_literals.c op_array->cache_size = cache_size; op_array 499 ext/opcache/Optimizer/compact_literals.c opline = op_array->opcodes; op_array 500 ext/opcache/Optimizer/compact_literals.c end = opline + op_array->last; op_array 515 ext/opcache/Optimizer/compact_literals.c fprintf(stderr, "Optimized literlas table size %d\n", op_array->last_literal); op_array 517 ext/opcache/Optimizer/compact_literals.c for (i = 0; i < op_array->last_literal; i++) { op_array 519 ext/opcache/Optimizer/compact_literals.c ZVAL_COPY_VALUE(&zv, op_array->literals + i); op_array 520 ext/opcache/Optimizer/compact_literals.c use_copy = zend_make_printable_zval(op_array->literals + i, &zv); op_array 34 ext/opcache/Optimizer/nop_removal.c void zend_optimizer_nop_removal(zend_op_array *op_array) op_array 42 ext/opcache/Optimizer/nop_removal.c shiftlist = (uint32_t *)DO_ALLOCA(sizeof(uint32_t) * op_array->last); op_array 44 ext/opcache/Optimizer/nop_removal.c end = op_array->opcodes + op_array->last; op_array 45 ext/opcache/Optimizer/nop_removal.c for (opline = op_array->opcodes; opline < end; opline++) { op_array 50 ext/opcache/Optimizer/nop_removal.c zend_op *target = op_array->opcodes + ZEND_OP1(opline).opline_num - 1; op_array 66 ext/opcache/Optimizer/nop_removal.c op_array->opcodes[new_count] = *opline; op_array 73 ext/opcache/Optimizer/nop_removal.c op_array->last = new_count; op_array 74 ext/opcache/Optimizer/nop_removal.c end = op_array->opcodes + op_array->last; op_array 77 ext/opcache/Optimizer/nop_removal.c for (opline = op_array->opcodes; opline<end; opline++) { op_array 112 ext/opcache/Optimizer/nop_removal.c for (j = 0; j < op_array->last_brk_cont; j++) { op_array 113 ext/opcache/Optimizer/nop_removal.c op_array->brk_cont_array[j].brk -= shiftlist[op_array->brk_cont_array[j].brk]; op_array 114 ext/opcache/Optimizer/nop_removal.c op_array->brk_cont_array[j].cont -= shiftlist[op_array->brk_cont_array[j].cont]; op_array 115 ext/opcache/Optimizer/nop_removal.c op_array->brk_cont_array[j].start -= shiftlist[op_array->brk_cont_array[j].start]; op_array 119 ext/opcache/Optimizer/nop_removal.c for (j = 0; j < op_array->last_try_catch; j++) { op_array 120 ext/opcache/Optimizer/nop_removal.c op_array->try_catch_array[j].try_op -= shiftlist[op_array->try_catch_array[j].try_op]; op_array 121 ext/opcache/Optimizer/nop_removal.c op_array->try_catch_array[j].catch_op -= shiftlist[op_array->try_catch_array[j].catch_op]; op_array 122 ext/opcache/Optimizer/nop_removal.c if (op_array->try_catch_array[j].finally_op) { op_array 123 ext/opcache/Optimizer/nop_removal.c op_array->try_catch_array[j].finally_op -= shiftlist[op_array->try_catch_array[j].finally_op]; op_array 124 ext/opcache/Optimizer/nop_removal.c op_array->try_catch_array[j].finally_end -= shiftlist[op_array->try_catch_array[j].finally_end]; op_array 129 ext/opcache/Optimizer/nop_removal.c if (op_array->early_binding != (uint32_t)-1) { op_array 130 ext/opcache/Optimizer/nop_removal.c uint32_t *opline_num = &op_array->early_binding; op_array 134 ext/opcache/Optimizer/nop_removal.c opline_num = &ZEND_RESULT(&op_array->opcodes[*opline_num]).opline_num; op_array 34 ext/opcache/Optimizer/optimize_func_calls.c Z_TYPE(op_array->literals[(opline)->op2.constant]) == IS_STRING) op_array 41 ext/opcache/Optimizer/optimize_func_calls.c void optimize_func_calls(zend_op_array *op_array, zend_optimizer_ctx *ctx) op_array 43 ext/opcache/Optimizer/optimize_func_calls.c zend_op *opline = op_array->opcodes; op_array 44 ext/opcache/Optimizer/optimize_func_calls.c zend_op *end = opline + op_array->last; op_array 49 ext/opcache/Optimizer/optimize_func_calls.c if (op_array->last < 2) { op_array 54 ext/opcache/Optimizer/optimize_func_calls.c call_stack = zend_arena_calloc(&ctx->arena, op_array->last / 2, sizeof(optimizer_call_info)); op_array 61 ext/opcache/Optimizer/optimize_func_calls.c zval *function_name = &op_array->literals[opline->op2.constant + 1]; op_array 88 ext/opcache/Optimizer/optimize_func_calls.c Z_CACHE_SLOT(op_array->literals[fcall->op2.constant + 1]) = Z_CACHE_SLOT(op_array->literals[fcall->op2.constant]); op_array 95 ext/opcache/Optimizer/optimize_func_calls.c Z_CACHE_SLOT(op_array->literals[fcall->op2.constant + 1]) = Z_CACHE_SLOT(op_array->literals[fcall->op2.constant]); op_array 96 ext/opcache/Optimizer/optimize_func_calls.c literal_dtor(&op_array->literals[fcall->op2.constant]); op_array 97 ext/opcache/Optimizer/optimize_func_calls.c literal_dtor(&op_array->literals[fcall->op2.constant + 2]); op_array 42 ext/opcache/Optimizer/optimize_temp_vars_5.c void optimize_temporary_variables(zend_op_array *op_array, zend_optimizer_ctx *ctx) op_array 44 ext/opcache/Optimizer/optimize_temp_vars_5.c int T = op_array->T; op_array 45 ext/opcache/Optimizer/optimize_temp_vars_5.c int offset = op_array->last_var; op_array 64 ext/opcache/Optimizer/optimize_temp_vars_5.c end = op_array->opcodes; op_array 65 ext/opcache/Optimizer/optimize_temp_vars_5.c opline = &op_array->opcodes[op_array->last - 1]; op_array 78 ext/opcache/Optimizer/optimize_temp_vars_5.c end = op_array->opcodes; op_array 79 ext/opcache/Optimizer/optimize_temp_vars_5.c opline = &op_array->opcodes[op_array->last - 1]; op_array 110 ext/opcache/Optimizer/optimize_temp_vars_5.c if ((op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) && op_array 228 ext/opcache/Optimizer/optimize_temp_vars_5.c op_array->T = max + 1; op_array 40 ext/opcache/Optimizer/pass1_5.c void zend_optimizer_pass1(zend_op_array *op_array, zend_optimizer_ctx *ctx) op_array 43 ext/opcache/Optimizer/pass1_5.c zend_op *opline = op_array->opcodes; op_array 44 ext/opcache/Optimizer/pass1_5.c zend_op *end = opline + op_array->last; op_array 46 ext/opcache/Optimizer/pass1_5.c (op_array == &ctx->script->main_op_array) : 0; op_array 97 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_TMP_VAR, tv, &result)) { op_array 134 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, type, tv, &res)) { op_array 162 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_TMP_VAR, tv, &result)) { op_array 235 ext/opcache/Optimizer/pass1_5.c ZEND_OP1(opline + 1).opline_num = last_op - op_array->opcodes; /* that's OK even for ZE2, since opline_num's are resolved in pass 2 later */ op_array 254 ext/opcache/Optimizer/pass1_5.c fake_execute_data.func = (zend_function*)op_array; op_array 259 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline, IS_TMP_VAR, tv, offset)) { op_array 283 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline, IS_TMP_VAR, tv, &c)) { op_array 299 ext/opcache/Optimizer/pass1_5.c if (op_array->scope && op_array 301 ext/opcache/Optimizer/pass1_5.c ZSTR_VAL(op_array->scope->name), Z_STRLEN(ZEND_OP1_LITERAL(opline)) + 1)) { op_array 302 ext/opcache/Optimizer/pass1_5.c ce = op_array->scope; op_array 305 ext/opcache/Optimizer/pass1_5.c Z_STR(op_array->literals[opline->op1.constant + 1]))) == NULL || op_array 309 ext/opcache/Optimizer/pass1_5.c ZEND_CE_FILENAME(ce) != op_array->filename)) { op_array 313 ext/opcache/Optimizer/pass1_5.c } else if (op_array->scope && op_array 320 ext/opcache/Optimizer/pass1_5.c ce = op_array->scope; op_array 348 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline, IS_TMP_VAR, tv, &t)) { op_array 463 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) { op_array 503 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) { op_array 520 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) { op_array 536 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) { op_array 552 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) { op_array 572 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) { op_array 595 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_TMP_VAR, ZEND_RESULT(opline).var, &t)) { op_array 609 ext/opcache/Optimizer/pass1_5.c if (zend_optimizer_replace_by_const(op_array, opline, IS_TMP_VAR, tv, &c)) { op_array 653 ext/opcache/Optimizer/pass1_5.c if (opline != op_array->opcodes && op_array 697 ext/opcache/Optimizer/pass1_5.c use->op1.var = zend_optimizer_lookup_cv(op_array, op_array 702 ext/opcache/Optimizer/pass1_5.c use->op2.var = zend_optimizer_lookup_cv(op_array, op_array 36 ext/opcache/Optimizer/pass2.c void zend_optimizer_pass2(zend_op_array *op_array) op_array 39 ext/opcache/Optimizer/pass2.c zend_op *end = op_array->opcodes + op_array->last; op_array 41 ext/opcache/Optimizer/pass2.c opline = op_array->opcodes; op_array 42 ext/opcache/Optimizer/pass3.c if (jmp_hitlist[i] == ZEND_OP1(&op_array->opcodes[target]).opline_num) { \ op_array 46 ext/opcache/Optimizer/pass3.c jmp_hitlist[jmp_hitlist_count++] = ZEND_OP1(&op_array->opcodes[target]).opline_num; op_array 50 ext/opcache/Optimizer/pass3.c if (jmp_hitlist[i] == ZEND_OP2(&op_array->opcodes[target]).opline_num) { \ op_array 54 ext/opcache/Optimizer/pass3.c jmp_hitlist[jmp_hitlist_count++] = ZEND_OP2(&op_array->opcodes[target]).opline_num; op_array 56 ext/opcache/Optimizer/pass3.c void zend_optimizer_pass3(zend_op_array *op_array) op_array 59 ext/opcache/Optimizer/pass3.c zend_op *end = op_array->opcodes + op_array->last; op_array 66 ext/opcache/Optimizer/pass3.c jmp_hitlist = (uint32_t *)DO_ALLOCA(sizeof(uint32_t)*op_array->last); op_array 67 ext/opcache/Optimizer/pass3.c opline = op_array->opcodes; op_array 167 ext/opcache/Optimizer/pass3.c if (op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) { op_array 178 ext/opcache/Optimizer/pass3.c while (ZEND_OP1(opline).opline_num < op_array->last op_array 179 ext/opcache/Optimizer/pass3.c && op_array->opcodes[ZEND_OP1(opline).opline_num].opcode == ZEND_JMP) { op_array 182 ext/opcache/Optimizer/pass3.c ZEND_OP1(opline).opline_num = ZEND_OP1(&op_array->opcodes[target]).opline_num; op_array 188 ext/opcache/Optimizer/pass3.c if (op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) { op_array 192 ext/opcache/Optimizer/pass3.c while (ZEND_OP2(opline).opline_num < op_array->last) { op_array 194 ext/opcache/Optimizer/pass3.c if (op_array->opcodes[target].opcode == ZEND_JMP) { op_array 195 ext/opcache/Optimizer/pass3.c ZEND_OP2(opline).opline_num = ZEND_OP1(&op_array->opcodes[target]).opline_num; op_array 203 ext/opcache/Optimizer/pass3.c if (op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) { op_array 207 ext/opcache/Optimizer/pass3.c while (ZEND_OP2(opline).opline_num < op_array->last) { op_array 210 ext/opcache/Optimizer/pass3.c if (op_array->opcodes[target].opcode == ZEND_JMP) { op_array 214 ext/opcache/Optimizer/pass3.c ZEND_OP2(opline).opline_num = ZEND_OP1(&op_array->opcodes[target]).opline_num; op_array 215 ext/opcache/Optimizer/pass3.c } else if (op_array->opcodes[target].opcode == opline->opcode && op_array 216 ext/opcache/Optimizer/pass3.c SAME_VAR(opline->op1, op_array->opcodes[target].op1)) { op_array 220 ext/opcache/Optimizer/pass3.c ZEND_OP2(opline).opline_num = ZEND_OP2(&op_array->opcodes[target]).opline_num; op_array 221 ext/opcache/Optimizer/pass3.c } else if (op_array->opcodes[target].opcode == opline->opcode + 3 && op_array 222 ext/opcache/Optimizer/pass3.c SAME_VAR(opline->op1, op_array->opcodes[target].op1)) { op_array 225 ext/opcache/Optimizer/pass3.c ZEND_OP2(opline).opline_num = ZEND_OP2(&op_array->opcodes[target]).opline_num;opline->opcode += 3; op_array 226 ext/opcache/Optimizer/pass3.c COPY_NODE(opline->result, op_array->opcodes[target].result); op_array 228 ext/opcache/Optimizer/pass3.c } else if (op_array->opcodes[target].opcode == INV_COND(opline->opcode) && op_array 229 ext/opcache/Optimizer/pass3.c SAME_VAR(opline->op1, op_array->opcodes[target].op1)) { op_array 234 ext/opcache/Optimizer/pass3.c } else if (op_array->opcodes[target].opcode == INV_COND_EX(opline->opcode) && op_array 235 ext/opcache/Optimizer/pass3.c SAME_VAR(opline->op1, op_array->opcodes[target].op1)) { op_array 240 ext/opcache/Optimizer/pass3.c COPY_NODE(opline->result, op_array->opcodes[target].result); op_array 253 ext/opcache/Optimizer/pass3.c if (op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) { op_array 269 ext/opcache/Optimizer/pass3.c while (ZEND_OP2(opline).opline_num < op_array->last) { op_array 271 ext/opcache/Optimizer/pass3.c if (SAME_OPCODE_EX(opline->opcode, op_array->opcodes[target].opcode) && op_array 272 ext/opcache/Optimizer/pass3.c SAME_VAR(op_array->opcodes[target].op1, T)) { op_array 274 ext/opcache/Optimizer/pass3.c if (op_array->opcodes[target].opcode == opline->opcode) { op_array 276 ext/opcache/Optimizer/pass3.c COPY_NODE(T, op_array->opcodes[target].result); op_array 279 ext/opcache/Optimizer/pass3.c ZEND_OP2(opline).opline_num = ZEND_OP2(&op_array->opcodes[target]).opline_num; op_array 280 ext/opcache/Optimizer/pass3.c } else if (op_array->opcodes[target].opcode == ZEND_JMPZNZ && op_array 281 ext/opcache/Optimizer/pass3.c SAME_VAR(op_array->opcodes[target].op1, T)) { op_array 286 ext/opcache/Optimizer/pass3.c new_target = ZEND_OP2(&op_array->opcodes[target]).opline_num; op_array 289 ext/opcache/Optimizer/pass3.c new_target = op_array->opcodes[target].extended_value; op_array 292 ext/opcache/Optimizer/pass3.c } else if ((op_array->opcodes[target].opcode == INV_EX_COND_EX(opline->opcode) || op_array 293 ext/opcache/Optimizer/pass3.c op_array->opcodes[target].opcode == INV_EX_COND(opline->opcode)) && op_array 294 ext/opcache/Optimizer/pass3.c SAME_VAR(opline->op1, op_array->opcodes[target].op1)) { op_array 342 ext/opcache/Optimizer/pass3.c for(op = &op_array->opcodes[ZEND_OP2(opline).opline_num]; op<end; op++) { op_array 385 ext/opcache/Optimizer/pass3.c if (op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) { op_array 390 ext/opcache/Optimizer/pass3.c while (ZEND_OP2(opline).opline_num < op_array->last op_array 391 ext/opcache/Optimizer/pass3.c && op_array->opcodes[ZEND_OP2(opline).opline_num].opcode == ZEND_JMP) { op_array 394 ext/opcache/Optimizer/pass3.c ZEND_OP2(opline).opline_num = ZEND_OP1(&op_array->opcodes[target]).opline_num; op_array 398 ext/opcache/Optimizer/pass3.c while (opline->extended_value < op_array->last op_array 399 ext/opcache/Optimizer/pass3.c && op_array->opcodes[opline->extended_value].opcode == ZEND_JMP) { op_array 402 ext/opcache/Optimizer/pass3.c opline->extended_value = ZEND_OP1(&op_array->opcodes[target]).opline_num; op_array 58 ext/opcache/Optimizer/zend_optimizer.c int zend_optimizer_lookup_cv(zend_op_array *op_array, zend_string* name) op_array 63 ext/opcache/Optimizer/zend_optimizer.c while (i < op_array->last_var) { op_array 64 ext/opcache/Optimizer/zend_optimizer.c if (op_array->vars[i] == name || op_array 65 ext/opcache/Optimizer/zend_optimizer.c (ZSTR_H(op_array->vars[i]) == hash_value && op_array 66 ext/opcache/Optimizer/zend_optimizer.c ZSTR_LEN(op_array->vars[i]) == ZSTR_LEN(name) && op_array 67 ext/opcache/Optimizer/zend_optimizer.c memcmp(ZSTR_VAL(op_array->vars[i]), ZSTR_VAL(name), ZSTR_LEN(name)) == 0)) { op_array 72 ext/opcache/Optimizer/zend_optimizer.c i = op_array->last_var; op_array 73 ext/opcache/Optimizer/zend_optimizer.c op_array->last_var++; op_array 74 ext/opcache/Optimizer/zend_optimizer.c op_array->vars = erealloc(op_array->vars, op_array->last_var * sizeof(zend_string*)); op_array 75 ext/opcache/Optimizer/zend_optimizer.c op_array->vars[i] = zend_string_dup(name, 0); op_array 79 ext/opcache/Optimizer/zend_optimizer.c zend_op *opline = op_array->opcodes; op_array 80 ext/opcache/Optimizer/zend_optimizer.c zend_op *end = opline + op_array->last; op_array 103 ext/opcache/Optimizer/zend_optimizer.c int zend_optimizer_add_literal(zend_op_array *op_array, zval *zv) op_array 105 ext/opcache/Optimizer/zend_optimizer.c int i = op_array->last_literal; op_array 106 ext/opcache/Optimizer/zend_optimizer.c op_array->last_literal++; op_array 107 ext/opcache/Optimizer/zend_optimizer.c op_array->literals = (zval*)erealloc(op_array->literals, op_array->last_literal * sizeof(zval)); op_array 108 ext/opcache/Optimizer/zend_optimizer.c ZVAL_COPY_VALUE(&op_array->literals[i], zv); op_array 109 ext/opcache/Optimizer/zend_optimizer.c Z_CACHE_SLOT(op_array->literals[i]) = -1; op_array 113 ext/opcache/Optimizer/zend_optimizer.c static inline int zend_optimizer_add_literal_string(zend_op_array *op_array, zend_string *str) { op_array 117 ext/opcache/Optimizer/zend_optimizer.c return zend_optimizer_add_literal(op_array, &zv); op_array 135 ext/opcache/Optimizer/zend_optimizer.c static inline void alloc_cache_slots_op1(zend_op_array *op_array, zend_op *opline, uint32_t num) { op_array 136 ext/opcache/Optimizer/zend_optimizer.c Z_CACHE_SLOT(op_array->literals[opline->op1.constant]) = op_array->cache_size; op_array 137 ext/opcache/Optimizer/zend_optimizer.c op_array->cache_size += num * sizeof(void *); op_array 139 ext/opcache/Optimizer/zend_optimizer.c static inline void alloc_cache_slots_op2(zend_op_array *op_array, zend_op *opline, uint32_t num) { op_array 140 ext/opcache/Optimizer/zend_optimizer.c Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) = op_array->cache_size; op_array 141 ext/opcache/Optimizer/zend_optimizer.c op_array->cache_size += num * sizeof(void *); op_array 159 ext/opcache/Optimizer/zend_optimizer.c int zend_optimizer_update_op1_const(zend_op_array *op_array, op_array 175 ext/opcache/Optimizer/zend_optimizer.c opline->op1.constant = zend_optimizer_add_literal(op_array, val); op_array 176 ext/opcache/Optimizer/zend_optimizer.c alloc_cache_slots_op1(op_array, opline, 1); op_array 177 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_add_literal_string(op_array, zend_string_tolower(Z_STR_P(val))); op_array 186 ext/opcache/Optimizer/zend_optimizer.c opline->op1.constant = zend_optimizer_add_literal(op_array, val); op_array 188 ext/opcache/Optimizer/zend_optimizer.c alloc_cache_slots_op1(op_array, opline, 2); op_array 196 ext/opcache/Optimizer/zend_optimizer.c opline->op1.constant = zend_optimizer_add_literal(op_array, val); op_array 207 ext/opcache/Optimizer/zend_optimizer.c int zend_optimizer_update_op2_const(zend_op_array *op_array, op_array 231 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 232 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_add_literal_string(op_array, zend_string_tolower(Z_STR_P(val))); op_array 233 ext/opcache/Optimizer/zend_optimizer.c alloc_cache_slots_op2(op_array, opline, 1); op_array 238 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 239 ext/opcache/Optimizer/zend_optimizer.c alloc_cache_slots_op2(op_array, opline, 1); op_array 250 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 251 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_add_literal_string(op_array, zend_string_tolower(Z_STR_P(val))); op_array 252 ext/opcache/Optimizer/zend_optimizer.c alloc_cache_slots_op2(op_array, opline, 1); op_array 254 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 260 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 261 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_add_literal_string(op_array, zend_string_tolower(Z_STR_P(val))); op_array 262 ext/opcache/Optimizer/zend_optimizer.c alloc_cache_slots_op2(op_array, opline, 2); op_array 279 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 280 ext/opcache/Optimizer/zend_optimizer.c alloc_cache_slots_op2(op_array, opline, 2); op_array 296 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 297 ext/opcache/Optimizer/zend_optimizer.c alloc_cache_slots_op2(op_array, opline, 2); op_array 299 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 318 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 341 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 351 ext/opcache/Optimizer/zend_optimizer.c opline->op2.constant = zend_optimizer_add_literal(op_array, val); op_array 362 ext/opcache/Optimizer/zend_optimizer.c int zend_optimizer_replace_by_const(zend_op_array *op_array, op_array 368 ext/opcache/Optimizer/zend_optimizer.c zend_op *end = op_array->opcodes + op_array->last; op_array 416 ext/opcache/Optimizer/zend_optimizer.c int brk = op_array->last_brk_cont; op_array 419 ext/opcache/Optimizer/zend_optimizer.c if (op_array->brk_cont_array[brk].start <= (opline - op_array->opcodes) && op_array 420 ext/opcache/Optimizer/zend_optimizer.c op_array->brk_cont_array[brk].brk > (opline - op_array->opcodes)) { op_array 434 ext/opcache/Optimizer/zend_optimizer.c n = op_array->opcodes + op_array->brk_cont_array[brk].brk + 1; op_array 442 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_update_op1_const(op_array, m, val); op_array 456 ext/opcache/Optimizer/zend_optimizer.c zend_arg_info *ret_info = op_array->arg_info - 1; op_array 461 ext/opcache/Optimizer/zend_optimizer.c || (op_array->fn_flags & ZEND_ACC_RETURN_REFERENCE)) { op_array 466 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_update_op1_const(op_array, opline + 1, val); op_array 472 ext/opcache/Optimizer/zend_optimizer.c return zend_optimizer_update_op1_const(op_array, opline, val); op_array 477 ext/opcache/Optimizer/zend_optimizer.c return zend_optimizer_update_op2_const(op_array, opline, val); op_array 485 ext/opcache/Optimizer/zend_optimizer.c static void zend_optimize(zend_op_array *op_array, op_array 488 ext/opcache/Optimizer/zend_optimizer.c if (op_array->type == ZEND_EVAL_CODE) { op_array 499 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_pass1(op_array, ctx); op_array 509 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_pass2(op_array); op_array 518 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_pass3(op_array); op_array 525 ext/opcache/Optimizer/zend_optimizer.c optimize_func_calls(op_array, ctx); op_array 532 ext/opcache/Optimizer/zend_optimizer.c optimize_cfg(op_array, ctx); op_array 539 ext/opcache/Optimizer/zend_optimizer.c optimize_temporary_variables(op_array, ctx); op_array 546 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_nop_removal(op_array); op_array 553 ext/opcache/Optimizer/zend_optimizer.c zend_optimizer_compact_literals(op_array, ctx); op_array 557 ext/opcache/Optimizer/zend_optimizer.c static void zend_accel_optimize(zend_op_array *op_array, op_array 563 ext/opcache/Optimizer/zend_optimizer.c opline = op_array->opcodes; op_array 564 ext/opcache/Optimizer/zend_optimizer.c end = opline + op_array->last; op_array 567 ext/opcache/Optimizer/zend_optimizer.c ZEND_PASS_TWO_UNDO_CONSTANT(op_array, opline->op1); op_array 570 ext/opcache/Optimizer/zend_optimizer.c ZEND_PASS_TWO_UNDO_CONSTANT(op_array, opline->op2); op_array 577 ext/opcache/Optimizer/zend_optimizer.c ZEND_PASS_TWO_UNDO_JMP_TARGET(op_array, opline, ZEND_OP1(opline)); op_array 581 ext/opcache/Optimizer/zend_optimizer.c opline->extended_value = ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value); op_array 593 ext/opcache/Optimizer/zend_optimizer.c ZEND_PASS_TWO_UNDO_JMP_TARGET(op_array, opline, ZEND_OP2(opline)); op_array 597 ext/opcache/Optimizer/zend_optimizer.c opline->extended_value = ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value); op_array 604 ext/opcache/Optimizer/zend_optimizer.c zend_optimize(op_array, ctx); op_array 607 ext/opcache/Optimizer/zend_optimizer.c opline = op_array->opcodes; op_array 608 ext/opcache/Optimizer/zend_optimizer.c end = opline + op_array->last; op_array 611 ext/opcache/Optimizer/zend_optimizer.c ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline->op1); op_array 614 ext/opcache/Optimizer/zend_optimizer.c ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline->op2); op_array 621 ext/opcache/Optimizer/zend_optimizer.c ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, ZEND_OP1(opline)); op_array 625 ext/opcache/Optimizer/zend_optimizer.c opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); op_array 637 ext/opcache/Optimizer/zend_optimizer.c ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, ZEND_OP2(opline)); op_array 641 ext/opcache/Optimizer/zend_optimizer.c opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); op_array 649 ext/opcache/Optimizer/zend_optimizer.c static void zend_accel_adjust_fcall_stack_size(zend_op_array *op_array, zend_optimizer_ctx *ctx) op_array 654 ext/opcache/Optimizer/zend_optimizer.c opline = op_array->opcodes; op_array 655 ext/opcache/Optimizer/zend_optimizer.c end = opline + op_array->last; op_array 660 ext/opcache/Optimizer/zend_optimizer.c Z_STR_P(RT_CONSTANT(op_array, opline->op2))); op_array 674 ext/opcache/Optimizer/zend_optimizer.c zend_op_array *op_array; op_array 686 ext/opcache/Optimizer/zend_optimizer.c op_array = (zend_op_array*)Z_PTR(p->val); op_array 687 ext/opcache/Optimizer/zend_optimizer.c zend_accel_optimize(op_array, &ctx); op_array 697 ext/opcache/Optimizer/zend_optimizer.c op_array = (zend_op_array*)Z_PTR(q->val); op_array 698 ext/opcache/Optimizer/zend_optimizer.c if (op_array->scope == ce) { op_array 699 ext/opcache/Optimizer/zend_optimizer.c zend_accel_optimize(op_array, &ctx); op_array 700 ext/opcache/Optimizer/zend_optimizer.c } else if (op_array->type == ZEND_USER_FUNCTION) { op_array 702 ext/opcache/Optimizer/zend_optimizer.c if ((orig_op_array = zend_hash_find_ptr(&op_array->scope->function_table, q->key)) != NULL) { op_array 703 ext/opcache/Optimizer/zend_optimizer.c HashTable *ht = op_array->static_variables; op_array 704 ext/opcache/Optimizer/zend_optimizer.c *op_array = *orig_op_array; op_array 705 ext/opcache/Optimizer/zend_optimizer.c op_array->static_variables = ht; op_array 717 ext/opcache/Optimizer/zend_optimizer.c op_array = (zend_op_array*)Z_PTR(p->val); op_array 718 ext/opcache/Optimizer/zend_optimizer.c zend_accel_adjust_fcall_stack_size(op_array, &ctx); op_array 728 ext/opcache/Optimizer/zend_optimizer.c op_array = (zend_op_array*)Z_PTR(q->val); op_array 729 ext/opcache/Optimizer/zend_optimizer.c if (op_array->scope == ce) { op_array 730 ext/opcache/Optimizer/zend_optimizer.c zend_accel_adjust_fcall_stack_size(op_array, &ctx); op_array 731 ext/opcache/Optimizer/zend_optimizer.c } else if (op_array->type == ZEND_USER_FUNCTION) { op_array 733 ext/opcache/Optimizer/zend_optimizer.c if ((orig_op_array = zend_hash_find_ptr(&op_array->scope->function_table, q->key)) != NULL) { op_array 734 ext/opcache/Optimizer/zend_optimizer.c HashTable *ht = op_array->static_variables; op_array 735 ext/opcache/Optimizer/zend_optimizer.c *op_array = *orig_op_array; op_array 736 ext/opcache/Optimizer/zend_optimizer.c op_array->static_variables = ht; op_array 97 ext/opcache/Optimizer/zend_optimizer_internal.h op.constant = zend_optimizer_add_literal(op_array, &_c); \ op_array 103 ext/opcache/Optimizer/zend_optimizer_internal.h op.constant = zend_optimizer_add_literal(op_array, &_c); \ op_array 116 ext/opcache/Optimizer/zend_optimizer_internal.h int zend_optimizer_add_literal(zend_op_array *op_array, zval *zv); op_array 120 ext/opcache/Optimizer/zend_optimizer_internal.h int zend_optimizer_lookup_cv(zend_op_array *op_array, zend_string* name); op_array 121 ext/opcache/Optimizer/zend_optimizer_internal.h int zend_optimizer_update_op1_const(zend_op_array *op_array, op_array 124 ext/opcache/Optimizer/zend_optimizer_internal.h int zend_optimizer_update_op2_const(zend_op_array *op_array, op_array 127 ext/opcache/Optimizer/zend_optimizer_internal.h int zend_optimizer_replace_by_const(zend_op_array *op_array, op_array 133 ext/opcache/Optimizer/zend_optimizer_internal.h void zend_optimizer_pass1(zend_op_array *op_array, zend_optimizer_ctx *ctx); op_array 134 ext/opcache/Optimizer/zend_optimizer_internal.h void zend_optimizer_pass2(zend_op_array *op_array); op_array 135 ext/opcache/Optimizer/zend_optimizer_internal.h void zend_optimizer_pass3(zend_op_array *op_array); op_array 136 ext/opcache/Optimizer/zend_optimizer_internal.h void optimize_func_calls(zend_op_array *op_array, zend_optimizer_ctx *ctx); op_array 137 ext/opcache/Optimizer/zend_optimizer_internal.h void optimize_cfg(zend_op_array *op_array, zend_optimizer_ctx *ctx); op_array 138 ext/opcache/Optimizer/zend_optimizer_internal.h void optimize_temporary_variables(zend_op_array *op_array, zend_optimizer_ctx *ctx); op_array 139 ext/opcache/Optimizer/zend_optimizer_internal.h void zend_optimizer_nop_removal(zend_op_array *op_array); op_array 140 ext/opcache/Optimizer/zend_optimizer_internal.h void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx *ctx); op_array 1407 ext/opcache/ZendAccelerator.c zend_op_array *op_array; op_array 1489 ext/opcache/ZendAccelerator.c op_array = *op_array_p = accelerator_orig_compile_file(file_handle, type); op_array 1492 ext/opcache/ZendAccelerator.c op_array = NULL; op_array 1503 ext/opcache/ZendAccelerator.c if (!op_array) { op_array 1518 ext/opcache/ZendAccelerator.c new_persistent_script->main_op_array = *op_array; op_array 1520 ext/opcache/ZendAccelerator.c efree(op_array); /* we have valid persistent_script, so it's safe to free op_array */ op_array 1553 ext/opcache/ZendAccelerator.c zend_op_array *op_array = NULL; op_array 1609 ext/opcache/ZendAccelerator.c persistent_script = opcache_compile_file(file_handle, type, NULL, 0, &op_array); op_array 1617 ext/opcache/ZendAccelerator.c return op_array; op_array 1787 ext/opcache/ZendAccelerator.c zend_op_array *op_array; op_array 1802 ext/opcache/ZendAccelerator.c persistent_script = opcache_compile_file(file_handle, type, key, key ? key_length : 0, &op_array); op_array 1812 ext/opcache/ZendAccelerator.c return op_array; op_array 2205 ext/opcache/ZendAccelerator.c if (func->op_array.static_variables) { op_array 2206 ext/opcache/ZendAccelerator.c if (!(GC_FLAGS(func->op_array.static_variables) & IS_ARRAY_IMMUTABLE)) { op_array 2207 ext/opcache/ZendAccelerator.c if (--GC_REFCOUNT(func->op_array.static_variables) == 0) { op_array 2208 ext/opcache/ZendAccelerator.c accel_fast_hash_destroy(func->op_array.static_variables); op_array 2227 ext/opcache/ZendAccelerator.c if (func->op_array.static_variables) { op_array 2228 ext/opcache/ZendAccelerator.c if (!(GC_FLAGS(func->op_array.static_variables) & IS_ARRAY_IMMUTABLE)) { op_array 2229 ext/opcache/ZendAccelerator.c if (--GC_REFCOUNT(func->op_array.static_variables) == 0) { op_array 2230 ext/opcache/ZendAccelerator.c accel_fast_hash_destroy(func->op_array.static_variables); op_array 2233 ext/opcache/ZendAccelerator.c func->op_array.static_variables = NULL; op_array 350 ext/opcache/ZendAccelerator.h # define ZEND_OP1_LITERAL(opline) (op_array)->literals[(opline)->op1.constant] op_array 354 ext/opcache/ZendAccelerator.h # define ZEND_OP2_LITERAL(opline) (op_array)->literals[(opline)->op2.constant] op_array 355 ext/opcache/ZendAccelerator.h # define ZEND_DONE_PASS_TWO(op_array) (((op_array)->fn_flags & ZEND_ACC_DONE_PASS_TWO) != 0) op_array 786 ext/opcache/zend_accelerator_module.c zend_op_array *op_array = NULL; op_array 806 ext/opcache/zend_accelerator_module.c op_array = persistent_compile_file(&handle, ZEND_INCLUDE); op_array 812 ext/opcache/zend_accelerator_module.c if(op_array != NULL) { op_array 813 ext/opcache/zend_accelerator_module.c destroy_op_array(op_array); op_array 814 ext/opcache/zend_accelerator_module.c efree(op_array); op_array 50 ext/opcache/zend_accelerator_util_funcs.c if (function->op_array.static_variables) { op_array 51 ext/opcache/zend_accelerator_util_funcs.c if (!(GC_FLAGS(function->op_array.static_variables) & IS_ARRAY_IMMUTABLE)) { op_array 52 ext/opcache/zend_accelerator_util_funcs.c if (--GC_REFCOUNT(function->op_array.static_variables) == 0) { op_array 53 ext/opcache/zend_accelerator_util_funcs.c FREE_HASHTABLE(function->op_array.static_variables); op_array 56 ext/opcache/zend_accelerator_util_funcs.c function->op_array.static_variables = NULL; op_array 554 ext/opcache/zend_accelerator_util_funcs.c zend_set_compiled_filename(function1->op_array.filename); op_array 555 ext/opcache/zend_accelerator_util_funcs.c CG(zend_lineno) = function1->op_array.opcodes[0].lineno; op_array 557 ext/opcache/zend_accelerator_util_funcs.c && function2->op_array.last > 0) { op_array 560 ext/opcache/zend_accelerator_util_funcs.c ZSTR_VAL(function2->op_array.filename), op_array 561 ext/opcache/zend_accelerator_util_funcs.c (int)function2->op_array.opcodes[0].lineno); op_array 598 ext/opcache/zend_accelerator_util_funcs.c zend_set_compiled_filename(function1->op_array.filename); op_array 599 ext/opcache/zend_accelerator_util_funcs.c CG(zend_lineno) = function1->op_array.opcodes[0].lineno; op_array 601 ext/opcache/zend_accelerator_util_funcs.c && function2->op_array.last > 0) { op_array 604 ext/opcache/zend_accelerator_util_funcs.c ZSTR_VAL(function2->op_array.filename), op_array 605 ext/opcache/zend_accelerator_util_funcs.c (int)function2->op_array.opcodes[0].lineno); op_array 679 ext/opcache/zend_accelerator_util_funcs.c zend_op_array *op_array; op_array 681 ext/opcache/zend_accelerator_util_funcs.c op_array = (zend_op_array *) emalloc(sizeof(zend_op_array)); op_array 682 ext/opcache/zend_accelerator_util_funcs.c *op_array = persistent_script->main_op_array; op_array 735 ext/opcache/zend_accelerator_util_funcs.c if (op_array->early_binding != (uint32_t)-1) { op_array 738 ext/opcache/zend_accelerator_util_funcs.c zend_do_delayed_early_binding(op_array); op_array 746 ext/opcache/zend_accelerator_util_funcs.c return op_array; op_array 348 ext/opcache/zend_file_cache.c static void zend_file_cache_serialize_op_array(zend_op_array *op_array, op_array 353 ext/opcache/zend_file_cache.c if (op_array->static_variables && !IS_SERIALIZED(op_array->static_variables)) { op_array 356 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->static_variables); op_array 357 ext/opcache/zend_file_cache.c ht = op_array->static_variables; op_array 362 ext/opcache/zend_file_cache.c if (op_array->literals && !IS_SERIALIZED(op_array->literals)) { op_array 365 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->literals); op_array 366 ext/opcache/zend_file_cache.c p = op_array->literals; op_array 368 ext/opcache/zend_file_cache.c end = p + op_array->last_literal; op_array 375 ext/opcache/zend_file_cache.c if (!IS_SERIALIZED(op_array->opcodes)) { op_array 379 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->opcodes); op_array 380 ext/opcache/zend_file_cache.c opline = op_array->opcodes; op_array 382 ext/opcache/zend_file_cache.c end = opline + op_array->last; op_array 424 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->opcodes); op_array 427 ext/opcache/zend_file_cache.c if (op_array->arg_info) { op_array 429 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->arg_info); op_array 430 ext/opcache/zend_file_cache.c p = op_array->arg_info; op_array 432 ext/opcache/zend_file_cache.c end = p + op_array->num_args; op_array 433 ext/opcache/zend_file_cache.c if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { op_array 436 ext/opcache/zend_file_cache.c if (op_array->fn_flags & ZEND_ACC_VARIADIC) { op_array 450 ext/opcache/zend_file_cache.c if (op_array->vars) { op_array 453 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->vars); op_array 454 ext/opcache/zend_file_cache.c p = op_array->vars; op_array 456 ext/opcache/zend_file_cache.c end = p + op_array->last_var; op_array 465 ext/opcache/zend_file_cache.c SERIALIZE_STR(op_array->function_name); op_array 466 ext/opcache/zend_file_cache.c SERIALIZE_STR(op_array->filename); op_array 467 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->brk_cont_array); op_array 468 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->scope); op_array 469 ext/opcache/zend_file_cache.c SERIALIZE_STR(op_array->doc_comment); op_array 470 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->try_catch_array); op_array 471 ext/opcache/zend_file_cache.c SERIALIZE_PTR(op_array->prototype); op_array 480 ext/opcache/zend_file_cache.c zend_op_array *op_array; op_array 483 ext/opcache/zend_file_cache.c op_array = Z_PTR_P(zv); op_array 484 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array); op_array 485 ext/opcache/zend_file_cache.c zend_file_cache_serialize_op_array(op_array, script, info, buf); op_array 907 ext/opcache/zend_file_cache.c static void zend_file_cache_unserialize_op_array(zend_op_array *op_array, op_array 911 ext/opcache/zend_file_cache.c if (op_array->static_variables && !IS_UNSERIALIZED(op_array->static_variables)) { op_array 914 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->static_variables); op_array 915 ext/opcache/zend_file_cache.c ht = op_array->static_variables; op_array 920 ext/opcache/zend_file_cache.c if (op_array->literals && !IS_UNSERIALIZED(op_array->literals)) { op_array 923 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->literals); op_array 924 ext/opcache/zend_file_cache.c p = op_array->literals; op_array 925 ext/opcache/zend_file_cache.c end = p + op_array->last_literal; op_array 932 ext/opcache/zend_file_cache.c if (!IS_UNSERIALIZED(op_array->opcodes)) { op_array 935 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->opcodes); op_array 936 ext/opcache/zend_file_cache.c opline = op_array->opcodes; op_array 937 ext/opcache/zend_file_cache.c end = opline + op_array->last; op_array 980 ext/opcache/zend_file_cache.c if (op_array->arg_info) { op_array 982 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->arg_info); op_array 983 ext/opcache/zend_file_cache.c p = op_array->arg_info; op_array 984 ext/opcache/zend_file_cache.c end = p + op_array->num_args; op_array 985 ext/opcache/zend_file_cache.c if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { op_array 988 ext/opcache/zend_file_cache.c if (op_array->fn_flags & ZEND_ACC_VARIADIC) { op_array 1002 ext/opcache/zend_file_cache.c if (op_array->vars) { op_array 1005 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->vars); op_array 1006 ext/opcache/zend_file_cache.c p = op_array->vars; op_array 1007 ext/opcache/zend_file_cache.c end = p + op_array->last_var; op_array 1016 ext/opcache/zend_file_cache.c UNSERIALIZE_STR(op_array->function_name); op_array 1017 ext/opcache/zend_file_cache.c UNSERIALIZE_STR(op_array->filename); op_array 1018 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->brk_cont_array); op_array 1019 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->scope); op_array 1020 ext/opcache/zend_file_cache.c UNSERIALIZE_STR(op_array->doc_comment); op_array 1021 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->try_catch_array); op_array 1022 ext/opcache/zend_file_cache.c UNSERIALIZE_PTR(op_array->prototype); op_array 1030 ext/opcache/zend_file_cache.c zend_op_array *op_array; op_array 1033 ext/opcache/zend_file_cache.c op_array = Z_PTR_P(zv); op_array 1034 ext/opcache/zend_file_cache.c zend_file_cache_unserialize_op_array(op_array, script, buf); op_array 440 ext/opcache/zend_persist.c static void zend_persist_op_array_ex(zend_op_array *op_array, zend_persistent_script* main_persistent_script) op_array 446 ext/opcache/zend_persist.c if (op_array->type != ZEND_USER_FUNCTION) { op_array 450 ext/opcache/zend_persist.c if (op_array->refcount && --(*op_array->refcount) == 0) { op_array 451 ext/opcache/zend_persist.c efree(op_array->refcount); op_array 453 ext/opcache/zend_persist.c op_array->refcount = NULL; op_array 461 ext/opcache/zend_persist.c fake_execute_data.func = (zend_function*)op_array; op_array 469 ext/opcache/zend_persist.c if (op_array->static_variables) { op_array 470 ext/opcache/zend_persist.c HashTable *stored = zend_shared_alloc_get_xlat_entry(op_array->static_variables); op_array 473 ext/opcache/zend_persist.c op_array->static_variables = stored; op_array 475 ext/opcache/zend_persist.c zend_hash_persist(op_array->static_variables, zend_persist_zval_static); op_array 476 ext/opcache/zend_persist.c zend_accel_store(op_array->static_variables, sizeof(HashTable)); op_array 478 ext/opcache/zend_persist.c GC_REFCOUNT(op_array->static_variables) = 2; op_array 479 ext/opcache/zend_persist.c GC_TYPE_INFO(op_array->static_variables) = IS_ARRAY | (IS_ARRAY_IMMUTABLE << 8); op_array 480 ext/opcache/zend_persist.c op_array->static_variables->u.flags |= HASH_FLAG_STATIC_KEYS; op_array 481 ext/opcache/zend_persist.c op_array->static_variables->u.flags &= ~HASH_FLAG_APPLY_PROTECTION; op_array 485 ext/opcache/zend_persist.c if (zend_shared_alloc_get_xlat_entry(op_array->opcodes)) { op_array 489 ext/opcache/zend_persist.c if (op_array->literals) { op_array 491 ext/opcache/zend_persist.c orig_literals = zend_shared_alloc_get_xlat_entry(op_array->literals); op_array 493 ext/opcache/zend_persist.c op_array->literals = orig_literals; op_array 495 ext/opcache/zend_persist.c zval *p = zend_accel_memdup(op_array->literals, sizeof(zval) * op_array->last_literal); op_array 496 ext/opcache/zend_persist.c zval *end = p + op_array->last_literal; op_array 497 ext/opcache/zend_persist.c orig_literals = op_array->literals; op_array 498 ext/opcache/zend_persist.c op_array->literals = p; op_array 508 ext/opcache/zend_persist.c persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->opcodes); op_array 510 ext/opcache/zend_persist.c op_array->opcodes = persist_ptr; op_array 512 ext/opcache/zend_persist.c zend_op *new_opcodes = zend_accel_memdup(op_array->opcodes, sizeof(zend_op) * op_array->last); op_array 515 ext/opcache/zend_persist.c zend_op *end = new_opcodes + op_array->last; op_array 521 ext/opcache/zend_persist.c opline->op1.zv = (zval*)((char*)opline->op1.zv + ((char*)op_array->literals - (char*)orig_literals)); op_array 524 ext/opcache/zend_persist.c opline->op2.zv = (zval*)((char*)opline->op2.zv + ((char*)op_array->literals - (char*)orig_literals)); op_array 528 ext/opcache/zend_persist.c if (ZEND_DONE_PASS_TWO(op_array)) { op_array 535 ext/opcache/zend_persist.c ZEND_OP1(opline).jmp_addr = &new_opcodes[ZEND_OP1(opline).jmp_addr - op_array->opcodes]; op_array 550 ext/opcache/zend_persist.c ZEND_OP2(opline).jmp_addr = &new_opcodes[ZEND_OP2(opline).jmp_addr - op_array->opcodes]; op_array 562 ext/opcache/zend_persist.c efree(op_array->opcodes); op_array 563 ext/opcache/zend_persist.c op_array->opcodes = new_opcodes; op_array 565 ext/opcache/zend_persist.c if (op_array->run_time_cache) { op_array 566 ext/opcache/zend_persist.c efree(op_array->run_time_cache); op_array 567 ext/opcache/zend_persist.c op_array->run_time_cache = NULL; op_array 571 ext/opcache/zend_persist.c if (op_array->function_name && !IS_ACCEL_INTERNED(op_array->function_name)) { op_array 574 ext/opcache/zend_persist.c new_name = zend_shared_alloc_get_xlat_entry(op_array->function_name); op_array 576 ext/opcache/zend_persist.c op_array->function_name = new_name; op_array 578 ext/opcache/zend_persist.c zend_accel_store_string(op_array->function_name); op_array 582 ext/opcache/zend_persist.c if (op_array->filename) { op_array 584 ext/opcache/zend_persist.c zend_accel_memdup_string(op_array->filename); op_array 587 ext/opcache/zend_persist.c if (op_array->arg_info) { op_array 588 ext/opcache/zend_persist.c zend_arg_info *arg_info = op_array->arg_info; op_array 589 ext/opcache/zend_persist.c uint32_t num_args = op_array->num_args; op_array 591 ext/opcache/zend_persist.c if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { op_array 601 ext/opcache/zend_persist.c if (op_array->fn_flags & ZEND_ACC_VARIADIC) { op_array 614 ext/opcache/zend_persist.c if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { op_array 617 ext/opcache/zend_persist.c op_array->arg_info = arg_info; op_array 620 ext/opcache/zend_persist.c if (op_array->brk_cont_array) { op_array 621 ext/opcache/zend_persist.c zend_accel_store(op_array->brk_cont_array, sizeof(zend_brk_cont_element) * op_array->last_brk_cont); op_array 624 ext/opcache/zend_persist.c if (op_array->scope) { op_array 625 ext/opcache/zend_persist.c op_array->scope = zend_shared_alloc_get_xlat_entry(op_array->scope); op_array 628 ext/opcache/zend_persist.c if (op_array->doc_comment) { op_array 631 ext/opcache/zend_persist.c op_array->doc_comment = zend_shared_alloc_get_xlat_entry(op_array->doc_comment); op_array 632 ext/opcache/zend_persist.c ZEND_ASSERT(op_array->doc_comment != NULL); op_array 634 ext/opcache/zend_persist.c zend_accel_store_string(op_array->doc_comment); op_array 638 ext/opcache/zend_persist.c zend_string_release(op_array->doc_comment); op_array 640 ext/opcache/zend_persist.c op_array->doc_comment = NULL; op_array 644 ext/opcache/zend_persist.c if (op_array->try_catch_array) { op_array 645 ext/opcache/zend_persist.c zend_accel_store(op_array->try_catch_array, sizeof(zend_try_catch_element) * op_array->last_try_catch); op_array 648 ext/opcache/zend_persist.c if (op_array->vars) { op_array 650 ext/opcache/zend_persist.c persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->vars); op_array 652 ext/opcache/zend_persist.c op_array->vars = (zend_string**)persist_ptr; op_array 655 ext/opcache/zend_persist.c zend_accel_store(op_array->vars, sizeof(zend_string*) * op_array->last_var); op_array 656 ext/opcache/zend_persist.c for (i = 0; i < op_array->last_var; i++) { op_array 657 ext/opcache/zend_persist.c zend_accel_store_interned_string(op_array->vars[i]); op_array 663 ext/opcache/zend_persist.c if (op_array->scope && op_array->prototype) { op_array 664 ext/opcache/zend_persist.c if ((persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->prototype))) { op_array 665 ext/opcache/zend_persist.c op_array->prototype = (union _zend_function*)persist_ptr; op_array 668 ext/opcache/zend_persist.c op_array->prototype = NULL; op_array 671 ext/opcache/zend_persist.c ZCG(mem) = (void*)((char*)ZCG(mem) + ZEND_ALIGNED_SIZE(zend_extensions_op_array_persist(op_array, ZCG(mem)))); op_array 676 ext/opcache/zend_persist.c zend_op_array *op_array = Z_PTR_P(zv); op_array 677 ext/opcache/zend_persist.c zend_op_array *old_op_array = zend_shared_alloc_get_xlat_entry(op_array); op_array 680 ext/opcache/zend_persist.c if (op_array->refcount && --(*op_array->refcount) == 0) { op_array 681 ext/opcache/zend_persist.c efree(op_array->refcount); op_array 160 ext/opcache/zend_persist_calc.c static void zend_persist_op_array_calc_ex(zend_op_array *op_array) op_array 162 ext/opcache/zend_persist_calc.c if (op_array->type != ZEND_USER_FUNCTION) { op_array 166 ext/opcache/zend_persist_calc.c if (op_array->static_variables) { op_array 167 ext/opcache/zend_persist_calc.c if (!zend_shared_alloc_get_xlat_entry(op_array->static_variables)) { op_array 168 ext/opcache/zend_persist_calc.c HashTable *old = op_array->static_variables; op_array 170 ext/opcache/zend_persist_calc.c ADD_DUP_SIZE(op_array->static_variables, sizeof(HashTable)); op_array 171 ext/opcache/zend_persist_calc.c zend_hash_persist_calc(op_array->static_variables, zend_persist_zval_calc); op_array 172 ext/opcache/zend_persist_calc.c zend_shared_alloc_register_xlat_entry(old, op_array->static_variables); op_array 176 ext/opcache/zend_persist_calc.c if (zend_shared_alloc_get_xlat_entry(op_array->opcodes)) { op_array 178 ext/opcache/zend_persist_calc.c if (op_array->function_name) { op_array 179 ext/opcache/zend_persist_calc.c zend_string *new_name = zend_shared_alloc_get_xlat_entry(op_array->function_name); op_array 181 ext/opcache/zend_persist_calc.c op_array->function_name = new_name; op_array 187 ext/opcache/zend_persist_calc.c if (op_array->literals) { op_array 188 ext/opcache/zend_persist_calc.c zval *p = op_array->literals; op_array 189 ext/opcache/zend_persist_calc.c zval *end = p + op_array->last_literal; op_array 190 ext/opcache/zend_persist_calc.c ADD_DUP_SIZE(op_array->literals, sizeof(zval) * op_array->last_literal); op_array 197 ext/opcache/zend_persist_calc.c ADD_DUP_SIZE(op_array->opcodes, sizeof(zend_op) * op_array->last); op_array 199 ext/opcache/zend_persist_calc.c if (op_array->function_name) { op_array 200 ext/opcache/zend_persist_calc.c zend_string *old_name = op_array->function_name; op_array 204 ext/opcache/zend_persist_calc.c op_array->function_name = new_name; op_array 206 ext/opcache/zend_persist_calc.c ADD_INTERNED_STRING(op_array->function_name, 0); op_array 207 ext/opcache/zend_persist_calc.c zend_shared_alloc_register_xlat_entry(old_name, op_array->function_name); op_array 211 ext/opcache/zend_persist_calc.c if (op_array->filename) { op_array 212 ext/opcache/zend_persist_calc.c ADD_STRING(op_array->filename); op_array 215 ext/opcache/zend_persist_calc.c if (op_array->arg_info) { op_array 216 ext/opcache/zend_persist_calc.c zend_arg_info *arg_info = op_array->arg_info; op_array 217 ext/opcache/zend_persist_calc.c uint32_t num_args = op_array->num_args; op_array 220 ext/opcache/zend_persist_calc.c num_args = op_array->num_args; op_array 221 ext/opcache/zend_persist_calc.c if (op_array->fn_flags & ZEND_ACC_VARIADIC) { op_array 224 ext/opcache/zend_persist_calc.c if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { op_array 239 ext/opcache/zend_persist_calc.c if (op_array->brk_cont_array) { op_array 240 ext/opcache/zend_persist_calc.c ADD_DUP_SIZE(op_array->brk_cont_array, sizeof(zend_brk_cont_element) * op_array->last_brk_cont); op_array 243 ext/opcache/zend_persist_calc.c if (ZCG(accel_directives).save_comments && op_array->doc_comment) { op_array 244 ext/opcache/zend_persist_calc.c ADD_STRING(op_array->doc_comment); op_array 247 ext/opcache/zend_persist_calc.c if (op_array->try_catch_array) { op_array 248 ext/opcache/zend_persist_calc.c ADD_DUP_SIZE(op_array->try_catch_array, sizeof(zend_try_catch_element) * op_array->last_try_catch); op_array 251 ext/opcache/zend_persist_calc.c if (op_array->vars) { op_array 254 ext/opcache/zend_persist_calc.c ADD_DUP_SIZE(op_array->vars, sizeof(zend_string*) * op_array->last_var); op_array 255 ext/opcache/zend_persist_calc.c for (i = 0; i < op_array->last_var; i++) { op_array 256 ext/opcache/zend_persist_calc.c ADD_INTERNED_STRING(op_array->vars[i], 0); op_array 260 ext/opcache/zend_persist_calc.c ADD_SIZE(ZEND_ALIGNED_SIZE(zend_extensions_op_array_persist_calc(op_array))); op_array 265 ext/opcache/zend_persist_calc.c zend_op_array *op_array = Z_PTR_P(zv); op_array 267 ext/opcache/zend_persist_calc.c if (op_array->type == ZEND_USER_FUNCTION/* && op_array 268 ext/opcache/zend_persist_calc.c (!op_array->refcount || *(op_array->refcount) > 1)*/) { op_array 269 ext/opcache/zend_persist_calc.c zend_op_array *old_op_array = zend_shared_alloc_get_xlat_entry(op_array); op_array 275 ext/opcache/zend_persist_calc.c zend_shared_alloc_register_xlat_entry(op_array, Z_PTR_P(zv)); op_array 631 ext/reflection/php_reflection.c static zend_op* _get_recv_op(zend_op_array *op_array, uint32_t offset) op_array 633 ext/reflection/php_reflection.c zend_op *op = op_array->opcodes; op_array 634 ext/reflection/php_reflection.c zend_op *end = op + op_array->last; op_array 695 ext/reflection/php_reflection.c ZVAL_DUP(&zv, RT_CONSTANT(&fptr->op_array, precv->op2)); op_array 760 ext/reflection/php_reflection.c if (fptr->type != ZEND_USER_FUNCTION || !fptr->op_array.static_variables) { op_array 764 ext/reflection/php_reflection.c static_variables = fptr->op_array.static_variables; op_array 793 ext/reflection/php_reflection.c if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.doc_comment) { op_array 794 ext/reflection/php_reflection.c string_printf(str, "%s%s\n", indent, ZSTR_VAL(fptr->op_array.doc_comment)); op_array 864 ext/reflection/php_reflection.c if (fptr->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) { op_array 871 ext/reflection/php_reflection.c ZSTR_VAL(fptr->op_array.filename), op_array 872 ext/reflection/php_reflection.c fptr->op_array.line_start, op_array 873 ext/reflection/php_reflection.c fptr->op_array.line_end); op_array 882 ext/reflection/php_reflection.c if (fptr->op_array.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { op_array 1816 ext/reflection/php_reflection.c RETURN_STR_COPY(fptr->op_array.filename); op_array 1834 ext/reflection/php_reflection.c RETURN_LONG(fptr->op_array.line_start); op_array 1852 ext/reflection/php_reflection.c RETURN_LONG(fptr->op_array.line_end); op_array 1869 ext/reflection/php_reflection.c if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.doc_comment) { op_array 1870 ext/reflection/php_reflection.c RETURN_STR_COPY(fptr->op_array.doc_comment); op_array 1891 ext/reflection/php_reflection.c if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.static_variables != NULL) { op_array 1892 ext/reflection/php_reflection.c if (GC_REFCOUNT(fptr->op_array.static_variables) > 1) { op_array 1893 ext/reflection/php_reflection.c if (!(GC_FLAGS(fptr->op_array.static_variables) & IS_ARRAY_IMMUTABLE)) { op_array 1894 ext/reflection/php_reflection.c GC_REFCOUNT(fptr->op_array.static_variables)--; op_array 1896 ext/reflection/php_reflection.c fptr->op_array.static_variables = zend_array_dup(fptr->op_array.static_variables); op_array 1898 ext/reflection/php_reflection.c ZEND_HASH_FOREACH_VAL(fptr->op_array.static_variables, val) { op_array 1903 ext/reflection/php_reflection.c zend_hash_copy(Z_ARRVAL_P(return_value), fptr->op_array.static_variables, zval_add_ref); op_array 2032 ext/reflection/php_reflection.c RETURN_BOOL((fptr->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0); op_array 2244 ext/reflection/php_reflection.c ZVAL_STR_COPY(return_value, ex->func->op_array.filename); op_array 2264 ext/reflection/php_reflection.c } else if (ex->func->op_array.scope) { op_array 2265 ext/reflection/php_reflection.c reflection_method_factory(ex->func->op_array.scope, ex->func, NULL, return_value); op_array 2860 ext/reflection/php_reflection.c ZVAL_COPY_VALUE(return_value, RT_CONSTANT(¶m->fptr->op_array, precv->op2)); op_array 2890 ext/reflection/php_reflection.c if (precv && Z_TYPE_P(RT_CONSTANT(¶m->fptr->op_array, precv->op2)) == IS_CONSTANT) { op_array 2915 ext/reflection/php_reflection.c if (precv && Z_TYPE_P(RT_CONSTANT(¶m->fptr->op_array, precv->op2)) == IS_CONSTANT) { op_array 2916 ext/reflection/php_reflection.c RETURN_STR_COPY(Z_STR_P(RT_CONSTANT(¶m->fptr->op_array, precv->op2))); op_array 3522 ext/reflection/php_reflection.c RETVAL_BOOL(fptr->op_array.fn_flags & ZEND_ACC_HAS_RETURN_TYPE); op_array 3539 ext/reflection/php_reflection.c if (!(fptr->op_array.fn_flags & ZEND_ACC_HAS_RETURN_TYPE)) { op_array 2609 main/main.c zend_op_array *op_array; op_array 2613 main/main.c op_array = zend_compile_file(file, ZEND_INCLUDE); op_array 2616 main/main.c if (op_array) { op_array 2617 main/main.c destroy_op_array(op_array); op_array 2618 main/main.c efree(op_array); op_array 441 sapi/phpdbg/phpdbg.c static void phpdbg_oplog_fill_executable(zend_op_array *op_array, HashTable *insert_ht, zend_bool by_opcode) { op_array 443 sapi/phpdbg/phpdbg.c zend_op *cur = op_array->opcodes + op_array->num_args + !!(op_array->fn_flags & ZEND_ACC_VARIADIC); op_array 444 sapi/phpdbg/phpdbg.c zend_op *end = op_array->opcodes + op_array->last; op_array 451 sapi/phpdbg/phpdbg.c if (op_array->last >= 1 && (((end - 1)->opcode == ZEND_RETURN || (end - 1)->opcode == ZEND_RETURN_BY_REF || (end - 1)->opcode == ZEND_GENERATOR_RETURN) op_array 452 sapi/phpdbg/phpdbg.c && ((op_array->last > 1 && ((end - 2)->opcode == ZEND_RETURN || (end - 2)->opcode == ZEND_RETURN_BY_REF || (end - 2)->opcode == ZEND_GENERATOR_RETURN || (end - 2)->opcode == ZEND_THROW)) op_array 453 sapi/phpdbg/phpdbg.c || op_array->function_name == NULL || (end - 1)->extended_value == -1))) { op_array 467 sapi/phpdbg/phpdbg.c insert_idx = cur - op_array->opcodes; op_array 541 sapi/phpdbg/phpdbg.c if (zend_hash_exists(files, func->op_array.filename)) { op_array 542 sapi/phpdbg/phpdbg.c insert_ht = phpdbg_add_empty_array(Z_ARR_P(return_value), func->op_array.filename); op_array 548 sapi/phpdbg/phpdbg.c phpdbg_oplog_fill_executable(&func->op_array, insert_ht, by_opcode); op_array 557 sapi/phpdbg/phpdbg.c if (func->type == ZEND_USER_FUNCTION && zend_hash_exists(files, func->op_array.filename)) { op_array 558 sapi/phpdbg/phpdbg.c insert_ht = phpdbg_add_empty_array(Z_ARR_P(return_value), func->op_array.filename); op_array 561 sapi/phpdbg/phpdbg.c zend_string *fn_name = strpprintf(ZSTR_LEN(name) + ZSTR_LEN(func->op_array.function_name) + 2, "%.*s::%.*s", (int) ZSTR_LEN(name), ZSTR_VAL(name), (int) ZSTR_LEN(func->op_array.function_name), ZSTR_VAL(func->op_array.function_name)); op_array 566 sapi/phpdbg/phpdbg.c phpdbg_oplog_fill_executable(&func->op_array, insert_ht, by_opcode); op_array 577 sapi/phpdbg/phpdbg.c &source->op_array, op_array 578 sapi/phpdbg/phpdbg.c phpdbg_add_empty_array(Z_ARR_P(return_value), source->op_array.filename), op_array 476 sapi/phpdbg/phpdbg_bp.c PHPDBG_API int phpdbg_resolve_op_array_break(phpdbg_breakopline_t *brake, zend_op_array *op_array) /* {{{ */ op_array 479 sapi/phpdbg/phpdbg_bp.c if (op_array->last <= brake->opline_num) { op_array 481 sapi/phpdbg/phpdbg_bp.c phpdbg_error("breakpoint", "type=\"maxoplines\" add=\"fail\" maxoplinenum=\"%d\" function=\"%s\" usedoplinenum=\"%ld\"", "There are only %d oplines in function %s (breaking at opline %ld impossible)", op_array->last, brake->func_name, brake->opline_num); op_array 483 sapi/phpdbg/phpdbg_bp.c phpdbg_error("breakpoint", "type=\"maxoplines\" add=\"fail\" maxoplinenum=\"%d\" file=\"%s\" usedoplinenum=\"%ld\"", "There are only %d oplines in file %s (breaking at opline %ld impossible)", op_array->last, brake->class_name, brake->opline_num); op_array 485 sapi/phpdbg/phpdbg_bp.c phpdbg_error("breakpoint", "type=\"maxoplines\" add=\"fail\" maxoplinenum=\"%d\" method=\"%s::%s\" usedoplinenum=\"%ld\"", "There are only %d oplines in method %s::%s (breaking at opline %ld impossible)", op_array->last, brake->class_name, brake->func_name, brake->opline_num); op_array 494 sapi/phpdbg/phpdbg_bp.c opline_break.opline = brake->opline = (zend_ulong)(op_array->opcodes + brake->opline_num); op_array 497 sapi/phpdbg/phpdbg_bp.c if (op_array->scope) { op_array 499 sapi/phpdbg/phpdbg_bp.c } else if (op_array->function_name) { op_array 512 sapi/phpdbg/phpdbg_bp.c PHPDBG_API void phpdbg_resolve_op_array_breaks(zend_op_array *op_array) /* {{{ */ op_array 518 sapi/phpdbg/phpdbg_bp.c if (op_array->scope != NULL && !(func_table = zend_hash_find_ptr(&PHPDBG_G(bp)[PHPDBG_BREAK_METHOD_OPLINE], op_array->scope->name))) { op_array 522 sapi/phpdbg/phpdbg_bp.c if (op_array->function_name == NULL) { op_array 523 sapi/phpdbg/phpdbg_bp.c if (!(oplines_table = zend_hash_find_ptr(&PHPDBG_G(bp)[PHPDBG_BREAK_FILE_OPLINE], op_array->filename))) { op_array 526 sapi/phpdbg/phpdbg_bp.c } else if (!op_array->function_name || !(oplines_table = zend_hash_find_ptr(func_table, op_array->function_name))) { op_array 531 sapi/phpdbg/phpdbg_bp.c if (phpdbg_resolve_op_array_break(brake, op_array) == SUCCESS) { op_array 567 sapi/phpdbg/phpdbg_bp.c zend_op_array *op_array = &execute_data->func->op_array; op_array 568 sapi/phpdbg/phpdbg_bp.c if (op_array->function_name == NULL && op_array->scope == NULL && new_break->class_len == ZSTR_LEN(op_array->filename) && !memcmp(ZSTR_VAL(op_array->filename), new_break->class_name, new_break->class_len)) { op_array 569 sapi/phpdbg/phpdbg_bp.c if (phpdbg_resolve_op_array_break(new_break, op_array) == SUCCESS) { op_array 606 sapi/phpdbg/phpdbg_bp.c if (phpdbg_resolve_op_array_break(new_break, &func->op_array) == FAILURE) { op_array 885 sapi/phpdbg/phpdbg_bp.c static inline phpdbg_breakbase_t *phpdbg_find_breakpoint_file(zend_op_array *op_array) /* {{{ */ op_array 891 sapi/phpdbg/phpdbg_bp.c const char *path = ZSTR_VAL(op_array->filename); op_array 1116 sapi/phpdbg/phpdbg_bp.c if ((PHPDBG_G(flags) & PHPDBG_HAS_FILE_BP) && (base = phpdbg_find_breakpoint_file(&execute_data->func->op_array))) { op_array 1121 sapi/phpdbg/phpdbg_bp.c zend_op_array *op_array = &execute_data->func->op_array; op_array 1123 sapi/phpdbg/phpdbg_bp.c if (execute_data->opline == op_array->opcodes + op_array->num_args + !!(op_array->fn_flags & ZEND_ACC_VARIADIC)) { op_array 121 sapi/phpdbg/phpdbg_bp.h PHPDBG_API void phpdbg_resolve_op_array_breaks(zend_op_array *op_array); op_array 122 sapi/phpdbg/phpdbg_bp.h PHPDBG_API int phpdbg_resolve_op_array_break(phpdbg_breakopline_t *brake, zend_op_array *op_array); op_array 40 sapi/phpdbg/phpdbg_frame.c EG(scope) = PHPDBG_EX(func)->op_array.scope; op_array 82 sapi/phpdbg/phpdbg_frame.c EG(scope) = PHPDBG_EX(func)->op_array.scope; op_array 211 sapi/phpdbg/phpdbg_info.c zend_op_array *ops = &EG(current_execute_data)->func->op_array; op_array 311 sapi/phpdbg/phpdbg_info.c zend_op_array *ops = in_executor ? &EG(current_execute_data)->func->op_array : PHPDBG_G(ops); op_array 450 sapi/phpdbg/phpdbg_info.c zend_op_array *op_array = &zf->op_array; op_array 452 sapi/phpdbg/phpdbg_info.c phpdbg_write("function", "name=\"%s\"", "|-------- %s", op_array->function_name ? ZSTR_VAL(op_array->function_name) : "{main}"); op_array 454 sapi/phpdbg/phpdbg_info.c if (op_array->filename) { op_array 455 sapi/phpdbg/phpdbg_info.c phpdbg_writeln("functionsource", "file=\"%s\" line=\"%d\"", " in %s on line %d", ZSTR_VAL(op_array->filename), op_array->line_start); op_array 298 sapi/phpdbg/phpdbg_list.c zend_op_array *op_array; op_array 305 sapi/phpdbg/phpdbg_list.c op_array = PHPDBG_G(init_compile_file)(file, type); op_array 307 sapi/phpdbg/phpdbg_list.c if (op_array == NULL) { op_array 314 sapi/phpdbg/phpdbg_list.c dataptr->op_array = *op_array; op_array 315 sapi/phpdbg/phpdbg_list.c if (dataptr->op_array.refcount) { op_array 316 sapi/phpdbg/phpdbg_list.c ++*dataptr->op_array.refcount; op_array 319 sapi/phpdbg/phpdbg_list.c return op_array; op_array 324 sapi/phpdbg/phpdbg_list.c zend_op_array *op_array; op_array 345 sapi/phpdbg/phpdbg_list.c op_array = PHPDBG_G(compile_string)(source_string, filename); op_array 347 sapi/phpdbg/phpdbg_list.c if (op_array == NULL) { op_array 353 sapi/phpdbg/phpdbg_list.c fake_name = strpprintf(0, "%s\0%p", filename, op_array->opcodes); op_array 361 sapi/phpdbg/phpdbg_list.c dataptr->op_array = *op_array; op_array 362 sapi/phpdbg/phpdbg_list.c if (dataptr->op_array.refcount) { op_array 363 sapi/phpdbg/phpdbg_list.c ++*dataptr->op_array.refcount; op_array 366 sapi/phpdbg/phpdbg_list.c return op_array; op_array 376 sapi/phpdbg/phpdbg_list.c destroy_op_array(&data->op_array); op_array 51 sapi/phpdbg/phpdbg_list.h zend_op_array op_array; op_array 181 sapi/phpdbg/phpdbg_opcode.c char *decode = phpdbg_decode_opline(&execute_data->func->op_array, opline); op_array 189 sapi/phpdbg/phpdbg_opcode.c execute_data->func->op_array.filename ? ZSTR_VAL(execute_data->func->op_array.filename) : "unknown"); op_array 197 sapi/phpdbg/phpdbg_opcode.c execute_data->func->op_array.filename ? ZSTR_VAL(execute_data->func->op_array.filename) : "unknown"); op_array 205 sapi/phpdbg/phpdbg_opcode.c zend_op_array *op_array = &execute_data->func->op_array; op_array 207 sapi/phpdbg/phpdbg_opcode.c cur->opcodes = op_array->opcodes; op_array 208 sapi/phpdbg/phpdbg_opcode.c cur->filename = op_array->filename; op_array 209 sapi/phpdbg/phpdbg_opcode.c cur->scope = op_array->scope; op_array 210 sapi/phpdbg/phpdbg_opcode.c cur->function_name = op_array->function_name; op_array 57 sapi/phpdbg/phpdbg_print.c zend_op_array* op_array = &(method->op_array); op_array 59 sapi/phpdbg/phpdbg_print.c if (op_array) { op_array 60 sapi/phpdbg/phpdbg_print.c zend_op *opline = &(op_array->opcodes[0]); op_array 62 sapi/phpdbg/phpdbg_print.c end = op_array->last-1; op_array 66 sapi/phpdbg/phpdbg_print.c op_array->line_start, op_array 67 sapi/phpdbg/phpdbg_print.c op_array->line_end, op_array 70 sapi/phpdbg/phpdbg_print.c op_array->filename ? ZSTR_VAL(op_array->filename) : "unknown", op_array 72 sapi/phpdbg/phpdbg_print.c op_array->last); op_array 75 sapi/phpdbg/phpdbg_print.c op_array->line_start, op_array 76 sapi/phpdbg/phpdbg_print.c op_array->line_end, op_array 78 sapi/phpdbg/phpdbg_print.c op_array->filename ? ZSTR_VAL(op_array->filename) : "unknown", op_array 80 sapi/phpdbg/phpdbg_print.c op_array->last); op_array 84 sapi/phpdbg/phpdbg_print.c char *decode = phpdbg_decode_opline(op_array, opline); op_array 127 sapi/phpdbg/phpdbg_print.c zend_op_array *ops = &phpdbg_user_execute_data(EG(current_execute_data))->func->op_array; op_array 196 sapi/phpdbg/phpdbg_print.c (fbc->type == ZEND_USER_FUNCTION) ? fbc->op_array.last : 0); op_array 245 sapi/phpdbg/phpdbg_print.c (fbc->type == ZEND_USER_FUNCTION) ? fbc->op_array.last : 0); op_array 272 sapi/phpdbg/phpdbg_print.c if (func->op_array.function_name->len == len && !zend_binary_strcasecmp(function, len, func->op_array.function_name->val, func->op_array.function_name->len)) { op_array 281 sapi/phpdbg/phpdbg_print.c phpdbg_out("function name: %.*s\n", (int) ZSTR_LEN(func->op_array.function_name), ZSTR_VAL(func->op_array.function_name)); op_array 523 sapi/phpdbg/phpdbg_prompt.c const zend_op_array *op_array = &ex->func->op_array; op_array 524 sapi/phpdbg/phpdbg_prompt.c const zend_op *opline = op_array->opcodes; op_array 539 sapi/phpdbg/phpdbg_prompt.c } while (++opline < op_array->opcodes + op_array->last); op_array 568 sapi/phpdbg/phpdbg_prompt.c const zend_op_array *op_array = &ex->func->op_array; op_array 569 sapi/phpdbg/phpdbg_prompt.c const zend_op *opline = op_array->opcodes; op_array 582 sapi/phpdbg/phpdbg_prompt.c } while (++opline < op_array->opcodes + op_array->last); op_array 1484 sapi/phpdbg/phpdbg_prompt.c phpdbg_resolve_op_array_breaks(&execute_data->func->op_array); op_array 1662 sapi/phpdbg/phpdbg_prompt.c phpdbg_notice("hardinterrupt", "opline=\"%p\" num=\"%lu\" file=\"%s\" line=\"%u\"", "Current opline: %p (op #%lu) in %s:%u", data->opline, (data->opline - data->func->op_array.opcodes) / sizeof(data->opline), data->func->op_array.filename->val, data->opline->lineno); op_array 745 sapi/phpdbg/phpdbg_utils.c zend_op_array *op_array = &execute_data->func->op_array; op_array 753 sapi/phpdbg/phpdbg_utils.c op_num = op - op_array->opcodes; op_array 755 sapi/phpdbg/phpdbg_utils.c for (i = 0; i < op_array->last_try_catch && op_array->try_catch_array[i].try_op <= op_num; i++) { op_array 756 sapi/phpdbg/phpdbg_utils.c uint32_t catch = op_array->try_catch_array[i].catch_op, finally = op_array->try_catch_array[i].finally_op; op_array 764 sapi/phpdbg/phpdbg_utils.c cur = &op_array->opcodes[catch];