Lines Matching refs:op_array

371 static void zend_persist_op_array_ex(zend_op_array *op_array, zend_persistent_script* main_persiste…  in zend_persist_op_array_ex()  argument
376 if (op_array->refcount && --(*op_array->refcount) == 0) { in zend_persist_op_array_ex()
377 efree(op_array->refcount); in zend_persist_op_array_ex()
379 op_array->refcount = NULL; in zend_persist_op_array_ex()
387 fake_execute_data.func = (zend_function*)op_array; in zend_persist_op_array_ex()
395 if (op_array->function_name) { in zend_persist_op_array_ex()
396 zend_string *old_name = op_array->function_name; in zend_persist_op_array_ex()
397 zend_accel_store_interned_string(op_array->function_name); in zend_persist_op_array_ex()
399 if (op_array->function_name != old_name in zend_persist_op_array_ex()
400 && !zend_shared_alloc_get_xlat_entry(&op_array->function_name)) { in zend_persist_op_array_ex()
401 zend_shared_alloc_register_xlat_entry(&op_array->function_name, old_name); in zend_persist_op_array_ex()
405 if (op_array->scope) { in zend_persist_op_array_ex()
406 zend_class_entry *scope = zend_shared_alloc_get_xlat_entry(op_array->scope); in zend_persist_op_array_ex()
409 op_array->scope = scope; in zend_persist_op_array_ex()
412 if (op_array->prototype) { in zend_persist_op_array_ex()
413 zend_function *ptr = zend_shared_alloc_get_xlat_entry(op_array->prototype); in zend_persist_op_array_ex()
416 op_array->prototype = ptr; in zend_persist_op_array_ex()
420 persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->opcodes); in zend_persist_op_array_ex()
422 op_array->opcodes = persist_ptr; in zend_persist_op_array_ex()
423 if (op_array->static_variables) { in zend_persist_op_array_ex()
424 op_array->static_variables = zend_shared_alloc_get_xlat_entry(op_array->static_variables); in zend_persist_op_array_ex()
425 ZEND_ASSERT(op_array->static_variables != NULL); in zend_persist_op_array_ex()
427 if (op_array->literals) { in zend_persist_op_array_ex()
428 op_array->literals = zend_shared_alloc_get_xlat_entry(op_array->literals); in zend_persist_op_array_ex()
429 ZEND_ASSERT(op_array->literals != NULL); in zend_persist_op_array_ex()
431 if (op_array->filename) { in zend_persist_op_array_ex()
432 op_array->filename = zend_shared_alloc_get_xlat_entry(op_array->filename); in zend_persist_op_array_ex()
433 ZEND_ASSERT(op_array->filename != NULL); in zend_persist_op_array_ex()
435 if (op_array->arg_info) { in zend_persist_op_array_ex()
436 zend_arg_info *arg_info = op_array->arg_info; in zend_persist_op_array_ex()
437 if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { in zend_persist_op_array_ex()
442 if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { in zend_persist_op_array_ex()
445 op_array->arg_info = arg_info; in zend_persist_op_array_ex()
447 if (op_array->live_range) { in zend_persist_op_array_ex()
448 op_array->live_range = zend_shared_alloc_get_xlat_entry(op_array->live_range); in zend_persist_op_array_ex()
449 ZEND_ASSERT(op_array->live_range != NULL); in zend_persist_op_array_ex()
451 if (op_array->doc_comment) { in zend_persist_op_array_ex()
453 op_array->doc_comment = zend_shared_alloc_get_xlat_entry(op_array->doc_comment); in zend_persist_op_array_ex()
454 ZEND_ASSERT(op_array->doc_comment != NULL); in zend_persist_op_array_ex()
456 op_array->doc_comment = NULL; in zend_persist_op_array_ex()
459 if (op_array->attributes) { in zend_persist_op_array_ex()
460 op_array->attributes = zend_shared_alloc_get_xlat_entry(op_array->attributes); in zend_persist_op_array_ex()
461 ZEND_ASSERT(op_array->attributes != NULL); in zend_persist_op_array_ex()
464 if (op_array->try_catch_array) { in zend_persist_op_array_ex()
465 op_array->try_catch_array = zend_shared_alloc_get_xlat_entry(op_array->try_catch_array); in zend_persist_op_array_ex()
466 ZEND_ASSERT(op_array->try_catch_array != NULL); in zend_persist_op_array_ex()
468 if (op_array->vars) { in zend_persist_op_array_ex()
469 op_array->vars = zend_shared_alloc_get_xlat_entry(op_array->vars); in zend_persist_op_array_ex()
470 ZEND_ASSERT(op_array->vars != NULL); in zend_persist_op_array_ex()
472 if (op_array->dynamic_func_defs) { in zend_persist_op_array_ex()
473 op_array->dynamic_func_defs = zend_shared_alloc_get_xlat_entry(op_array->dynamic_func_defs); in zend_persist_op_array_ex()
474 ZEND_ASSERT(op_array->dynamic_func_defs != NULL); in zend_persist_op_array_ex()
476 …ZCG(mem) = (void*)((char*)ZCG(mem) + ZEND_ALIGNED_SIZE(zend_extensions_op_array_persist(op_array, … in zend_persist_op_array_ex()
481 op_array->prototype = NULL; in zend_persist_op_array_ex()
484 if (op_array->scope in zend_persist_op_array_ex()
485 && !(op_array->fn_flags & ZEND_ACC_CLOSURE) in zend_persist_op_array_ex()
486 && (op_array->scope->ce_flags & ZEND_ACC_CACHED)) { in zend_persist_op_array_ex()
490 if (op_array->static_variables && !zend_accel_in_shm(op_array->static_variables)) { in zend_persist_op_array_ex()
493 zend_hash_persist(op_array->static_variables); in zend_persist_op_array_ex()
494 ZEND_HASH_MAP_FOREACH_BUCKET(op_array->static_variables, p) { in zend_persist_op_array_ex()
499op_array->static_variables = zend_shared_memdup_put_free(op_array->static_variables, sizeof(HashTa… in zend_persist_op_array_ex()
501 GC_SET_REFCOUNT(op_array->static_variables, 2); in zend_persist_op_array_ex()
502 …GC_TYPE_INFO(op_array->static_variables) = GC_ARRAY | ((IS_ARRAY_IMMUTABLE|GC_NOT_COLLECTABLE) << … in zend_persist_op_array_ex()
505 if (op_array->literals) { in zend_persist_op_array_ex()
508 orig_literals = op_array->literals; in zend_persist_op_array_ex()
510 p = zend_shared_memdup_put_free(op_array->literals, sizeof(zval) * op_array->last_literal); in zend_persist_op_array_ex()
512 p = zend_shared_memdup_put(op_array->literals, sizeof(zval) * op_array->last_literal); in zend_persist_op_array_ex()
514 end = p + op_array->last_literal; in zend_persist_op_array_ex()
515 op_array->literals = p; in zend_persist_op_array_ex()
523 …zend_op *new_opcodes = zend_shared_memdup_put(op_array->opcodes, sizeof(zend_op) * op_array->last); in zend_persist_op_array_ex()
525 zend_op *end = new_opcodes + op_array->last; in zend_persist_op_array_ex()
531 …opline->op1.zv = (zval*)((char*)opline->op1.zv + ((char*)op_array->literals - (char*)orig_literals… in zend_persist_op_array_ex()
540 …opline->op2.zv = (zval*)((char*)opline->op2.zv + ((char*)op_array->literals - (char*)orig_literals… in zend_persist_op_array_ex()
545 (char*)(op_array->literals + in zend_persist_op_array_ex()
546 ((zval*)((char*)(op_array->opcodes + (opline - new_opcodes)) + in zend_persist_op_array_ex()
557 (char*)(op_array->literals + in zend_persist_op_array_ex()
558 ((zval*)((char*)(op_array->opcodes + (opline - new_opcodes)) + in zend_persist_op_array_ex()
564 if (op_array->fn_flags & ZEND_ACC_DONE_PASS_TWO) { in zend_persist_op_array_ex()
569 opline->op1.jmp_addr = &new_opcodes[opline->op1.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex()
583 opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex()
587 opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex()
602 efree(op_array->opcodes); in zend_persist_op_array_ex()
603 op_array->opcodes = new_opcodes; in zend_persist_op_array_ex()
606 if (op_array->filename) { in zend_persist_op_array_ex()
607 zend_accel_store_string(op_array->filename); in zend_persist_op_array_ex()
610 if (op_array->arg_info) { in zend_persist_op_array_ex()
611 zend_arg_info *arg_info = op_array->arg_info; in zend_persist_op_array_ex()
612 uint32_t num_args = op_array->num_args; in zend_persist_op_array_ex()
615 if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { in zend_persist_op_array_ex()
619 if (op_array->fn_flags & ZEND_ACC_VARIADIC) { in zend_persist_op_array_ex()
629 if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { in zend_persist_op_array_ex()
632 op_array->arg_info = arg_info; in zend_persist_op_array_ex()
635 if (op_array->live_range) { in zend_persist_op_array_ex()
636op_array->live_range = zend_shared_memdup_put_free(op_array->live_range, sizeof(zend_live_range) *… in zend_persist_op_array_ex()
639 if (op_array->doc_comment) { in zend_persist_op_array_ex()
641 zend_accel_store_interned_string(op_array->doc_comment); in zend_persist_op_array_ex()
643 zend_string_release_ex(op_array->doc_comment, 0); in zend_persist_op_array_ex()
644 op_array->doc_comment = NULL; in zend_persist_op_array_ex()
648 if (op_array->attributes) { in zend_persist_op_array_ex()
649 op_array->attributes = zend_persist_attributes(op_array->attributes); in zend_persist_op_array_ex()
652 if (op_array->try_catch_array) { in zend_persist_op_array_ex()
653op_array->try_catch_array = zend_shared_memdup_put_free(op_array->try_catch_array, sizeof(zend_try… in zend_persist_op_array_ex()
656 if (op_array->vars) { in zend_persist_op_array_ex()
658op_array->vars = zend_shared_memdup_put_free(op_array->vars, sizeof(zend_string*) * op_array->last… in zend_persist_op_array_ex()
659 for (i = 0; i < op_array->last_var; i++) { in zend_persist_op_array_ex()
660 zend_accel_store_interned_string(op_array->vars[i]); in zend_persist_op_array_ex()
664 if (op_array->num_dynamic_func_defs) { in zend_persist_op_array_ex()
665 op_array->dynamic_func_defs = zend_shared_memdup_put_free( in zend_persist_op_array_ex()
666 op_array->dynamic_func_defs, sizeof(zend_function *) * op_array->num_dynamic_func_defs); in zend_persist_op_array_ex()
667 for (uint32_t i = 0; i < op_array->num_dynamic_func_defs; i++) { in zend_persist_op_array_ex()
669 ZVAL_PTR(&tmp, op_array->dynamic_func_defs[i]); in zend_persist_op_array_ex()
671 op_array->dynamic_func_defs[i] = Z_PTR(tmp); in zend_persist_op_array_ex()
675 …ZCG(mem) = (void*)((char*)ZCG(mem) + ZEND_ALIGNED_SIZE(zend_extensions_op_array_persist(op_array, … in zend_persist_op_array_ex()
680 zend_op_array *op_array = Z_PTR_P(zv); in zend_persist_op_array() local
682 ZEND_ASSERT(op_array->type == ZEND_USER_FUNCTION); in zend_persist_op_array()
684 old_op_array = zend_shared_alloc_get_xlat_entry(op_array); in zend_persist_op_array()
686 op_array = Z_PTR_P(zv) = zend_shared_memdup_put(Z_PTR_P(zv), sizeof(zend_op_array)); in zend_persist_op_array()
687 zend_persist_op_array_ex(op_array, NULL); in zend_persist_op_array()
689 op_array->fn_flags |= ZEND_ACC_IMMUTABLE; in zend_persist_op_array()
690 ZEND_MAP_PTR_NEW(op_array->run_time_cache); in zend_persist_op_array()
691 if (op_array->static_variables) { in zend_persist_op_array()
692 ZEND_MAP_PTR_NEW(op_array->static_variables_ptr); in zend_persist_op_array()
697 …zend_jit_op_array(op_array, ZCG(current_persistent_script) ? &ZCG(current_persistent_script)->scri… in zend_persist_op_array()
708 zend_op_array *op_array = Z_PTR_P(zv); in zend_persist_class_method() local
711 if (op_array->type != ZEND_USER_FUNCTION) { in zend_persist_class_method()
712 ZEND_ASSERT(op_array->type == ZEND_INTERNAL_FUNCTION); in zend_persist_class_method()
713 if (op_array->fn_flags & ZEND_ACC_ARENA_ALLOCATED) { in zend_persist_class_method()
714 old_op_array = zend_shared_alloc_get_xlat_entry(op_array); in zend_persist_class_method()
718 op_array = Z_PTR_P(zv) = zend_shared_memdup_put(op_array, sizeof(zend_internal_function)); in zend_persist_class_method()
719 if (op_array->scope) { in zend_persist_class_method()
722 if ((persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->scope))) { in zend_persist_class_method()
723 op_array->scope = (zend_class_entry*)persist_ptr; in zend_persist_class_method()
725 if (op_array->prototype) { in zend_persist_class_method()
726 if ((persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->prototype))) { in zend_persist_class_method()
727 op_array->prototype = (zend_function*)persist_ptr; in zend_persist_class_method()
733 … if (!op_array->scope || (op_array->scope == ce && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE))) { in zend_persist_class_method()
734 ZEND_MAP_PTR_NEW(op_array->run_time_cache); in zend_persist_class_method()
741 if ((op_array->fn_flags & ZEND_ACC_IMMUTABLE) in zend_persist_class_method()
743 && zend_accel_in_shm(op_array)) { in zend_persist_class_method()
744 zend_shared_alloc_register_xlat_entry(op_array, op_array); in zend_persist_class_method()
748 old_op_array = zend_shared_alloc_get_xlat_entry(op_array); in zend_persist_class_method()
751 if (op_array->refcount && --(*op_array->refcount) == 0) { in zend_persist_class_method()
752 efree(op_array->refcount); in zend_persist_class_method()
764 op_array = Z_PTR_P(zv) = zend_shared_memdup_put(op_array, sizeof(zend_op_array)); in zend_persist_class_method()
765 zend_persist_op_array_ex(op_array, NULL); in zend_persist_class_method()
767 op_array->fn_flags |= ZEND_ACC_IMMUTABLE; in zend_persist_class_method()
769 ZEND_MAP_PTR_NEW(op_array->run_time_cache); in zend_persist_class_method()
770 if (op_array->static_variables) { in zend_persist_class_method()
771 ZEND_MAP_PTR_NEW(op_array->static_variables_ptr); in zend_persist_class_method()
774 ZEND_MAP_PTR_INIT(op_array->run_time_cache, NULL); in zend_persist_class_method()
775 ZEND_MAP_PTR_INIT(op_array->static_variables_ptr, NULL); in zend_persist_class_method()
1252 zend_op_array *op_array; in zend_accel_persist_class_table() local
1257 ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, op_array) { in zend_accel_persist_class_table()
1258 if (op_array->type == ZEND_USER_FUNCTION) { in zend_accel_persist_class_table()
1259 if (op_array->scope == ce in zend_accel_persist_class_table()
1260 && !(op_array->fn_flags & ZEND_ACC_ABSTRACT) in zend_accel_persist_class_table()
1261 && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) { in zend_accel_persist_class_table()
1262 …zend_jit_op_array(op_array, ZCG(current_persistent_script) ? &ZCG(current_persistent_script)->scri… in zend_accel_persist_class_table()
1263 for (uint32_t i = 0; i < op_array->num_dynamic_func_defs; i++) { in zend_accel_persist_class_table()
1264 …zend_jit_op_array(op_array->dynamic_func_defs[i], ZCG(current_persistent_script) ? &ZCG(current_pe… in zend_accel_persist_class_table()
1274 ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, op_array) { in zend_accel_persist_class_table()
1275 if (op_array->type == ZEND_USER_FUNCTION in zend_accel_persist_class_table()
1276 && !(op_array->fn_flags & ZEND_ACC_ABSTRACT)) { in zend_accel_persist_class_table()
1277 if ((op_array->scope != ce in zend_accel_persist_class_table()
1278 || (op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) in zend_accel_persist_class_table()
1283 void *jit_extension = zend_shared_alloc_get_xlat_entry(op_array->opcodes); in zend_accel_persist_class_table()
1286 ZEND_SET_FUNC_INFO(op_array, jit_extension); in zend_accel_persist_class_table()