Skip to content

Commit 64fb060

Browse files
committed
Revert "Zend: add VM spec for ZEND_VERIFY_TYPE_RETURN for scalar values"
This reverts commit 20d2b6e. Because it turns out this has massive performance implications.
1 parent 20d2b6e commit 64fb060

3 files changed

Lines changed: 554 additions & 737 deletions

File tree

Zend/zend_vm_def.h

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4572,27 +4572,6 @@ ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_VERIFY_RETURN_TYPE, (((res_info & MAY_BE_REF)
45724572
ZEND_VM_NEXT_OPCODE();
45734573
}
45744574

4575-
ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_VERIFY_RETURN_TYPE, (((res_info & MAY_BE_REF) == 0) && (op1_info == MAY_BE_DOUBLE || op1_info == MAY_BE_STRING)), ZEND_VERIFY_RETURN_TYPE_FOR_STRING_AND_DOUBLE, CONST|TMPVAR|CV, UNUSED)
4576-
{
4577-
USE_OPLINE
4578-
zval *retval_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
4579-
if (OP1_TYPE == IS_CONST) {
4580-
ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
4581-
retval_ptr = EX_VAR(opline->result.var);
4582-
}
4583-
uint32_t pure_type_mask = opline->extended_value;
4584-
4585-
if (EXPECTED(ZEND_TYPE_MASK_CONTAINS_CODE(pure_type_mask, Z_TYPE_P(retval_ptr)))) {
4586-
ZEND_VM_NEXT_OPCODE();
4587-
} else if (EXPECTED(zend_verify_scalar_type_hint(pure_type_mask, retval_ptr, EX_USES_STRICT_TYPES(), /* is_internal*/ false))) {
4588-
ZEND_VM_NEXT_OPCODE();
4589-
} else {
4590-
SAVE_OPLINE();
4591-
zend_verify_return_error(EX(func), retval_ptr);
4592-
HANDLE_EXCEPTION();
4593-
}
4594-
}
4595-
45964575
ZEND_VM_COLD_HANDLER(201, ZEND_VERIFY_NEVER_TYPE, UNUSED, UNUSED)
45974576
{
45984577
SAVE_OPLINE();

0 commit comments

Comments
 (0)