NEXT_OPCODE();
}
+
int zend_sub_handler(ZEND_OPCODE_HANDLER_ARGS)
{
sub_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_mul_handler(ZEND_OPCODE_HANDLER_ARGS)
{
mul_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_div_handler(ZEND_OPCODE_HANDLER_ARGS)
{
div_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_mod_handler(ZEND_OPCODE_HANDLER_ARGS)
{
mod_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_sl_handler(ZEND_OPCODE_HANDLER_ARGS)
{
shift_left_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_sr_handler(ZEND_OPCODE_HANDLER_ARGS)
{
shift_right_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_concat_handler(ZEND_OPCODE_HANDLER_ARGS)
{
concat_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_is_identical_handler(ZEND_OPCODE_HANDLER_ARGS)
{
is_identical_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_is_not_identical_handler(ZEND_OPCODE_HANDLER_ARGS)
{
is_not_identical_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_is_equal_handler(ZEND_OPCODE_HANDLER_ARGS)
{
is_equal_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_is_not_equal_handler(ZEND_OPCODE_HANDLER_ARGS)
{
is_not_equal_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_is_smaller_handler(ZEND_OPCODE_HANDLER_ARGS)
{
is_smaller_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_is_smaller_or_equal_handler(ZEND_OPCODE_HANDLER_ARGS)
{
is_smaller_or_equal_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_bw_or_handler(ZEND_OPCODE_HANDLER_ARGS)
{
bitwise_or_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_bw_and_handler(ZEND_OPCODE_HANDLER_ARGS)
{
bitwise_and_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_bw_xor_handler(ZEND_OPCODE_HANDLER_ARGS)
{
bitwise_xor_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_bool_xor_handler(ZEND_OPCODE_HANDLER_ARGS)
{
boolean_xor_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_bw_not_handler(ZEND_OPCODE_HANDLER_ARGS)
{
bitwise_not_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_bool_not_handler(ZEND_OPCODE_HANDLER_ARGS)
{
boolean_not_function(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
inline int zend_binary_assign_op_helper(void *binary_op_arg, ZEND_OPCODE_HANDLER_ARGS)
{
zval **var_ptr = get_zval_ptr_ptr(&EX(opline)->op1, EX(Ts), BP_VAR_RW);
NEXT_OPCODE();
}
+
int zend_assign_add_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(add_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_sub_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(sub_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_mul_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(mul_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_div_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(div_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_mod_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(mod_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_sl_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(shift_left_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_sr_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(shift_right_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_concat_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(concat_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_bw_or_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(bitwise_or_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_bw_and_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(bitwise_and_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_bw_xor_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper(bitwise_xor_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_assign_add_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_sub_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_mul_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_div_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_mod_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_sl_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_sr_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_concat_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_bw_or_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_bw_and_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_bw_xor_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_pre_inc_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_pre_incdec_property(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), increment_function TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_pre_dec_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_pre_incdec_property(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), decrement_function TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_post_inc_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_post_incdec_property(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), increment_function TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_post_dec_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_post_incdec_property(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), decrement_function TSRMLS_CC);
NEXT_OPCODE();
}
+
inline int zend_incdec_op_helper(void *incdec_op_arg, ZEND_OPCODE_HANDLER_ARGS)
{
zval **var_ptr = get_zval_ptr_ptr(&EX(opline)->op1, EX(Ts), BP_VAR_RW);
NEXT_OPCODE();
}
+
int zend_pre_inc_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_incdec_op_helper(increment_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_pre_dec_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_incdec_op_helper(decrement_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_post_inc_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_incdec_op_helper(increment_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_post_dec_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_incdec_op_helper(decrement_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_print_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_print_variable(get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R));
NEXT_OPCODE();
}
+
int zend_echo_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_print_variable(get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R));
NEXT_OPCODE();
}
+
int zend_fetch_r_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_R TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_w_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_W TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_rw_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_RW TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_func_arg_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (ARG_SHOULD_BE_SENT_BY_REF(EX(opline)->extended_value, EX(fbc), EX(fbc)->common.arg_types)) {
NEXT_OPCODE();
}
+
int zend_fetch_unset_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_R TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_is_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_IS TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_dim_r_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (EX(opline)->extended_value == ZEND_FETCH_ADD_LOCK) {
NEXT_OPCODE();
}
+
int zend_fetch_dim_w_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_W TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_dim_rw_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_RW TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_dim_is_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_IS TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_dim_func_arg_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (ARG_SHOULD_BE_SENT_BY_REF(EX(opline)->extended_value, EX(fbc), EX(fbc)->common.arg_types)) {
NEXT_OPCODE();
}
+
int zend_fetch_dim_unset_handler(ZEND_OPCODE_HANDLER_ARGS)
{
/* Not needed in DIM_UNSET
NEXT_OPCODE();
}
+
int zend_fetch_obj_r_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_property_address_read(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_obj_w_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_property_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_W TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_obj_rw_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_property_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_RW TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_obj_is_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_property_address_read(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_IS TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_obj_func_arg_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (ARG_SHOULD_BE_SENT_BY_REF(EX(opline)->extended_value, EX(fbc), EX(fbc)->common.arg_types)) {
NEXT_OPCODE();
}
+
int zend_fetch_obj_unset_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_property_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fetch_dim_tmp_var_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_fetch_dimension_address_from_tmp_var(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts) TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_make_var_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *value, *value2;
NEXT_OPCODE();
}
+
int zend_assign_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *op_data = EX(opline)+1;
NEXT_OPCODE();
}
+
int zend_assign_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *value;
NEXT_OPCODE();
}
+
int zend_assign_ref_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval **value_ptr_ptr = get_zval_ptr_ptr(&EX(opline)->op2, EX(Ts), BP_VAR_W);
NEXT_OPCODE();
}
+
int zend_jmp_handler(ZEND_OPCODE_HANDLER_ARGS)
{
#if DEBUG_ZEND>=2
return 0; /* CHECK_ME */
}
+
int zend_jmpz_handler(ZEND_OPCODE_HANDLER_ARGS)
{
znode *op1 = &EX(opline)->op1;
NEXT_OPCODE();
}
+
int zend_jmpnz_handler(ZEND_OPCODE_HANDLER_ARGS)
{
znode *op1 = &EX(opline)->op1;
NEXT_OPCODE();
}
+
int zend_jmpznz_handler(ZEND_OPCODE_HANDLER_ARGS)
{
znode *res = &EX(opline)->op1;
return 0; /* CHECK_ME */
}
+
int zend_jmpz_ex_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *original_opline = EX(opline);
NEXT_OPCODE();
}
+
int zend_jmpnz_ex_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *original_opline = EX(opline);
NEXT_OPCODE();
}
+
int zend_free_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zendi_zval_dtor(EX_T(EX(opline)->op1.u.var).tmp_var);
NEXT_OPCODE();
}
+
int zend_init_string_handler(ZEND_OPCODE_HANDLER_ARGS)
{
EX_T(EX(opline)->result.u.var).tmp_var.value.str.val = emalloc(1);
NEXT_OPCODE();
}
+
int zend_add_char_handler(ZEND_OPCODE_HANDLER_ARGS)
{
add_char_to_string(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_add_string_handler(ZEND_OPCODE_HANDLER_ARGS)
{
add_string_to_string(&EX_T(EX(opline)->result.u.var).tmp_var,
NEXT_OPCODE();
}
+
int zend_add_var_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *var = get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R);
NEXT_OPCODE();
}
+
int zend_import_function_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_class_entry *ce;
NEXT_OPCODE();
}
+
int zend_import_class_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_class_entry *ce;
NEXT_OPCODE();
}
+
int zend_import_const_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_class_entry *ce;
NEXT_OPCODE();
}
+
int zend_fetch_class_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_class_entry **pce;
NEXT_OPCODE();
}
+
int zend_init_static_method_call_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *function_name;
NEXT_OPCODE();
}
+
int zend_init_fcall_by_name_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *function_name;
NEXT_OPCODE();
}
+
int zend_do_fcall_common_helper(ZEND_OPCODE_HANDLER_ARGS)
{
zval **original_return_value;
NEXT_OPCODE();
}
+
int zend_do_fcall_by_name_handler(ZEND_OPCODE_HANDLER_ARGS)
{
EX(function_state).function = EX(fbc);
return zend_do_fcall_common_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_do_fcall_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *fname = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R);
return zend_do_fcall_common_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_return_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *retval_ptr;
RETURN_FROM_EXECUTE_LOOP(execute_data);
}
+
int zend_throw_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *value;
NEXT_OPCODE();
}
+
int zend_catch_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_class_entry *ce;
NEXT_OPCODE();
}
+
int zend_send_val_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (EX(opline)->extended_value==ZEND_DO_FCALL_BY_NAME
NEXT_OPCODE();
}
+
inline int zend_send_by_var_helper(ZEND_OPCODE_HANDLER_ARGS)
{
zval *varptr;
NEXT_OPCODE();
}
+
int zend_send_var_no_ref_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (EX(opline)->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) { /* Had function_ptr at compile_time */
NEXT_OPCODE();
}
+
int zend_send_ref_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval **varptr_ptr;
NEXT_OPCODE();
}
+
int zend_send_var_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if ((EX(opline)->extended_value == ZEND_DO_FCALL_BY_NAME)
return zend_send_by_var_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_recv_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval **param;
NEXT_OPCODE();
}
+
int zend_recv_init_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval **param, *assignment_value;
NEXT_OPCODE();
}
+
int zend_bool_handler(ZEND_OPCODE_HANDLER_ARGS)
{
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
NEXT_OPCODE();
}
+
inline int zend_brk_cont_helper(ZEND_OPCODE_HANDLER_ARGS)
{
zval *nest_levels_zval = get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R);
return 0; /* CHECK_ME */
}
+
int zend_brk_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_brk_cont_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_cont_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_brk_cont_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_case_handler(ZEND_OPCODE_HANDLER_ARGS)
{
int switch_expr_is_overloaded=0;
NEXT_OPCODE();
}
+
int zend_switch_free_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_switch_free(EX(opline), EX(Ts) TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_new_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (EX_T(EX(opline)->op1.u.var).EA.class_entry->ce_flags & ZEND_ACC_ABSTRACT) {
NEXT_OPCODE();
}
+
int zend_clone_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *obj = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R);
NEXT_OPCODE();
}
+
int zend_fetch_constant_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_class_entry *ce;
NEXT_OPCODE();
}
+
inline int zend_init_add_array_helper(ZEND_OPCODE_HANDLER_ARGS)
{
zval *array_ptr = &EX_T(EX(opline)->result.u.var).tmp_var;
NEXT_OPCODE();
}
+
int zend_init_array_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_init_add_array_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_add_array_element_handler(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_init_add_array_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+
int zend_cast_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *expr = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R);
NEXT_OPCODE();
}
+
int zend_include_or_eval_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op_array *new_op_array=NULL;
NEXT_OPCODE();
}
+
int zend_unset_var_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval tmp, *variable;
NEXT_OPCODE();
}
+
int zend_unset_dim_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval **container = get_obj_zval_ptr_ptr(&EX(opline)->op1, EX(Ts), BP_VAR_R TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_fe_reset_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *array_ptr, **array_ptr_ptr;
NEXT_OPCODE();
}
+
int zend_fe_fetch_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *array = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R);
NEXT_OPCODE();
}
+
int zend_jmp_no_ctor_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *object_zval;
NEXT_OPCODE();
}
+
int zend_isset_isempty_var_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval tmp, *variable = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R);
NEXT_OPCODE();
}
+
int zend_isset_isempty_dim_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval **container = get_obj_zval_ptr_ptr(&EX(opline)->op1, EX(Ts), BP_VAR_R TSRMLS_CC);
NEXT_OPCODE();
}
+
int zend_exit_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (EX(opline)->op1.op_type != IS_UNUSED) {
NEXT_OPCODE();
}
+
int zend_begin_silence_handler(ZEND_OPCODE_HANDLER_ARGS)
{
EX_T(EX(opline)->result.u.var).tmp_var.value.lval = EG(error_reporting);
NEXT_OPCODE();
}
+
int zend_raise_abstract_error_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zend_error(E_ERROR, "Cannot call abstract method %s::%s()", EG(scope)->name, op_array->function_name);
NEXT_OPCODE(); /* Never reached */
}
+
int zend_end_silence_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval restored_error_reporting;
NEXT_OPCODE();
}
+
int zend_qm_assign_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *value = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R);
NEXT_OPCODE();
}
+
int zend_ext_stmt_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (!EG(no_extensions)) {
NEXT_OPCODE();
}
+
int zend_ext_fcall_begin_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (!EG(no_extensions)) {
NEXT_OPCODE();
}
+
int zend_ext_fcall_end_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (!EG(no_extensions)) {
NEXT_OPCODE();
}
+
int zend_declare_class_handler(ZEND_OPCODE_HANDLER_ARGS)
{
do_bind_class(EX(opline), EG(function_table), EG(class_table));
NEXT_OPCODE();
}
+
int zend_declare_inherited_class_handler(ZEND_OPCODE_HANDLER_ARGS)
{
do_bind_inherited_class(EX(opline), EG(function_table), EG(class_table), EX_T(EX(opline)->extended_value).EA.class_entry);
NEXT_OPCODE();
}
+
int zend_declare_function_handler(ZEND_OPCODE_HANDLER_ARGS)
{
do_bind_function(EX(opline), EG(function_table), EG(class_table), 0);
NEXT_OPCODE();
}
+
int zend_ticks_handler(ZEND_OPCODE_HANDLER_ARGS)
{
if (++EG(ticks_count)>=EX(opline)->op1.u.constant.value.lval) {
NEXT_OPCODE();
}
+
int zend_instanceof_handler(ZEND_OPCODE_HANDLER_ARGS)
{
zval *expr = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R);
NEXT_OPCODE();
}
+
int zend_ext_nop_handler(ZEND_OPCODE_HANDLER_ARGS)
{
NEXT_OPCODE();
}
+
int zend_nop_handler(ZEND_OPCODE_HANDLER_ARGS)
{
NEXT_OPCODE();
}
+
void zend_init_opcodes_handlers()
{
zend_opcode_handlers[ZEND_NOP] = zend_nop_handler;