@@ -8894,11 +8894,14 @@ ZEND_VM_HANDLER(183, ZEND_BIND_STATIC, CV, ANY, REF)
8894
8894
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ();
8895
8895
}
8896
8896
8897
- ZEND_VM_HANDLER (203 , ZEND_JMP_STATIC_DEF , ANY , JMP_ADDR )
8897
+ ZEND_VM_HANDLER (203 , ZEND_JMP_STATIC_DEF , CV , JMP_ADDR )
8898
8898
{
8899
8899
USE_OPLINE
8900
8900
HashTable * ht ;
8901
8901
zval * value ;
8902
+ zval * variable_ptr ;
8903
+
8904
+ variable_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF (BP_VAR_W );
8902
8905
8903
8906
ht = ZEND_MAP_PTR_GET (EX (func )-> op_array .static_variables_ptr );
8904
8907
if (!ht ) {
@@ -8910,7 +8913,12 @@ ZEND_VM_HANDLER(203, ZEND_JMP_STATIC_DEF, ANY, JMP_ADDR)
8910
8913
if (Z_TYPE_EXTRA_P (value ) & IS_STATIC_VAR_UNINITIALIZED ) {
8911
8914
ZEND_VM_NEXT_OPCODE ();
8912
8915
} else {
8913
- ZEND_VM_JMP_EX (OP_JMP_ADDR (opline , opline -> op2 ), 0 );
8916
+ SAVE_OPLINE ();
8917
+ zval_ptr_dtor (variable_ptr );
8918
+ ZEND_ASSERT (Z_TYPE_P (value ) == IS_REFERENCE );
8919
+ Z_ADDREF_P (value );
8920
+ ZVAL_REF (variable_ptr , Z_REF_P (value ));
8921
+ ZEND_VM_JMP_EX (OP_JMP_ADDR (opline , opline -> op2 ), 1 );
8914
8922
}
8915
8923
}
8916
8924
0 commit comments