@@ -1078,7 +1078,7 @@ ZEND_VM_HANDLER(28, ZEND_ASSIGN_OBJ_OP, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, OP)
1078
1078
zend_property_info * prop_info ;
1079
1079
1080
1080
SAVE_OPLINE ();
1081
- object = GET_OP1_OBJ_ZVAL_PTR_PTR (BP_VAR_RW );
1081
+ object = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF (BP_VAR_RW );
1082
1082
1083
1083
if (OP1_TYPE == IS_UNUSED && UNEXPECTED (Z_TYPE_P (object ) == IS_UNDEF )) {
1084
1084
ZEND_VM_DISPATCH_TO_HELPER (zend_this_not_in_object_context_helper );
@@ -1094,6 +1094,10 @@ ZEND_VM_HANDLER(28, ZEND_ASSIGN_OBJ_OP, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, OP)
1094
1094
object = Z_REFVAL_P (object );
1095
1095
ZEND_VM_C_GOTO (assign_op_object );
1096
1096
}
1097
+ if (OP1_TYPE == IS_CV
1098
+ && UNEXPECTED (Z_TYPE_P (object ) == IS_UNDEF )) {
1099
+ object = ZVAL_UNDEFINED_OP1 ();
1100
+ }
1097
1101
object = make_real_object (object , property OPLINE_CC EXECUTE_DATA_CC );
1098
1102
if (UNEXPECTED (!object )) {
1099
1103
break ;
@@ -1349,7 +1353,7 @@ ZEND_VM_HANDLER(132, ZEND_PRE_INC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACH
1349
1353
zend_property_info * prop_info ;
1350
1354
1351
1355
SAVE_OPLINE ();
1352
- object = GET_OP1_OBJ_ZVAL_PTR_PTR (BP_VAR_RW );
1356
+ object = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF (BP_VAR_RW );
1353
1357
1354
1358
if (OP1_TYPE == IS_UNUSED && UNEXPECTED (Z_TYPE_P (object ) == IS_UNDEF )) {
1355
1359
ZEND_VM_DISPATCH_TO_HELPER (zend_this_not_in_object_context_helper );
@@ -1363,6 +1367,10 @@ ZEND_VM_HANDLER(132, ZEND_PRE_INC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACH
1363
1367
object = Z_REFVAL_P (object );
1364
1368
ZEND_VM_C_GOTO (pre_incdec_object );
1365
1369
}
1370
+ if (OP1_TYPE == IS_CV
1371
+ && UNEXPECTED (Z_TYPE_P (object ) == IS_UNDEF )) {
1372
+ object = ZVAL_UNDEFINED_OP1 ();
1373
+ }
1366
1374
object = make_real_object (object , property OPLINE_CC EXECUTE_DATA_CC );
1367
1375
if (UNEXPECTED (!object )) {
1368
1376
break ;
@@ -1411,7 +1419,7 @@ ZEND_VM_HANDLER(134, ZEND_POST_INC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CAC
1411
1419
zend_property_info * prop_info ;
1412
1420
1413
1421
SAVE_OPLINE ();
1414
- object = GET_OP1_OBJ_ZVAL_PTR_PTR (BP_VAR_RW );
1422
+ object = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF (BP_VAR_RW );
1415
1423
1416
1424
if (OP1_TYPE == IS_UNUSED && UNEXPECTED (Z_TYPE_P (object ) == IS_UNDEF )) {
1417
1425
ZEND_VM_DISPATCH_TO_HELPER (zend_this_not_in_object_context_helper );
@@ -1425,6 +1433,10 @@ ZEND_VM_HANDLER(134, ZEND_POST_INC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CAC
1425
1433
object = Z_REFVAL_P (object );
1426
1434
ZEND_VM_C_GOTO (post_incdec_object );
1427
1435
}
1436
+ if (OP1_TYPE == IS_CV
1437
+ && UNEXPECTED (Z_TYPE_P (object ) == IS_UNDEF )) {
1438
+ object = ZVAL_UNDEFINED_OP1 ();
1439
+ }
1428
1440
object = make_real_object (object , property OPLINE_CC EXECUTE_DATA_CC );
1429
1441
if (UNEXPECTED (!object )) {
1430
1442
break ;
@@ -2200,7 +2212,7 @@ ZEND_VM_HANDLER(88, ZEND_FETCH_OBJ_RW, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACH
2200
2212
zval * property , * container , * result ;
2201
2213
2202
2214
SAVE_OPLINE ();
2203
- container = GET_OP1_OBJ_ZVAL_PTR_PTR (BP_VAR_RW );
2215
+ container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF (BP_VAR_RW );
2204
2216
2205
2217
if (OP1_TYPE == IS_UNUSED && UNEXPECTED (Z_TYPE_P (container ) == IS_UNDEF )) {
2206
2218
ZEND_VM_DISPATCH_TO_HELPER (zend_this_not_in_object_context_helper );
@@ -2339,7 +2351,7 @@ ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, C
2339
2351
zval * container , * property , * result ;
2340
2352
2341
2353
SAVE_OPLINE ();
2342
- container = GET_OP1_OBJ_ZVAL_PTR_PTR (BP_VAR_UNSET );
2354
+ container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF (BP_VAR_UNSET );
2343
2355
2344
2356
if (OP1_TYPE == IS_UNUSED && UNEXPECTED (Z_TYPE_P (container ) == IS_UNDEF )) {
2345
2357
ZEND_VM_DISPATCH_TO_HELPER (zend_this_not_in_object_context_helper );
@@ -6185,7 +6197,7 @@ ZEND_VM_HANDLER(76, ZEND_UNSET_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_S
6185
6197
zval * offset ;
6186
6198
6187
6199
SAVE_OPLINE ();
6188
- container = GET_OP1_OBJ_ZVAL_PTR_PTR (BP_VAR_UNSET );
6200
+ container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF (BP_VAR_UNSET );
6189
6201
if (OP1_TYPE == IS_UNUSED && UNEXPECTED (Z_TYPE_P (container ) == IS_UNDEF )) {
6190
6202
ZEND_VM_DISPATCH_TO_HELPER (zend_this_not_in_object_context_helper );
6191
6203
}
@@ -6196,6 +6208,10 @@ ZEND_VM_HANDLER(76, ZEND_UNSET_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_S
6196
6208
if (Z_ISREF_P (container )) {
6197
6209
container = Z_REFVAL_P (container );
6198
6210
if (Z_TYPE_P (container ) != IS_OBJECT ) {
6211
+ if (OP1_TYPE == IS_CV
6212
+ && UNEXPECTED (Z_TYPE_P (container ) == IS_UNDEF )) {
6213
+ container = ZVAL_UNDEFINED_OP1 ();
6214
+ }
6199
6215
break ;
6200
6216
}
6201
6217
} else {
0 commit comments