@@ -1164,24 +1164,15 @@ ZEND_VM_HANDLER(81, ZEND_FETCH_DIM_R, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
1164
1164
{
1165
1165
USE_OPLINE
1166
1166
zend_free_op free_op1 , free_op2 ;
1167
- zval * * container ;
1167
+ zval * container ;
1168
1168
1169
1169
SAVE_OPLINE ();
1170
-
1171
- if (OP1_TYPE == IS_TMP_VAR || OP1_TYPE == IS_CONST ) {
1172
- zval * container = GET_OP1_ZVAL_PTR (BP_VAR_R );
1173
- zend_fetch_dimension_address_read (& EX_T (opline -> result .var ), & container , GET_OP2_ZVAL_PTR (BP_VAR_R ), OP2_TYPE , BP_VAR_R TSRMLS_CC );
1174
- FREE_OP2 ();
1170
+ container = GET_OP1_ZVAL_PTR (BP_VAR_R );
1171
+ zend_fetch_dimension_address_read (& EX_T (opline -> result .var ), container , GET_OP2_ZVAL_PTR (BP_VAR_R ), OP2_TYPE , BP_VAR_R TSRMLS_CC );
1172
+ FREE_OP2 ();
1173
+ if (OP1_TYPE != IS_VAR || !(opline -> extended_value & ZEND_FETCH_ADD_LOCK )) {
1175
1174
FREE_OP1 ();
1176
- } else {
1177
- container = GET_OP1_ZVAL_PTR_PTR_FAST (BP_VAR_R );
1178
- zend_fetch_dimension_address_read (& EX_T (opline -> result .var ), container , GET_OP2_ZVAL_PTR (BP_VAR_R ), OP2_TYPE , BP_VAR_R TSRMLS_CC );
1179
- FREE_OP2 ();
1180
- if (OP1_TYPE == IS_VAR && !(opline -> extended_value & ZEND_FETCH_ADD_LOCK )) {
1181
- FREE_OP1_VAR_PTR_FAST ();
1182
- }
1183
1175
}
1184
-
1185
1176
CHECK_EXCEPTION ();
1186
1177
ZEND_VM_NEXT_OPCODE ();
1187
1178
}
@@ -1246,13 +1237,13 @@ ZEND_VM_HANDLER(90, ZEND_FETCH_DIM_IS, VAR|CV, CONST|TMP|VAR|CV)
1246
1237
{
1247
1238
USE_OPLINE
1248
1239
zend_free_op free_op1 , free_op2 ;
1249
- zval * * container ;
1240
+ zval * container ;
1250
1241
1251
1242
SAVE_OPLINE ();
1252
- container = GET_OP1_ZVAL_PTR_PTR_FAST (BP_VAR_IS );
1243
+ container = GET_OP1_ZVAL_PTR (BP_VAR_IS );
1253
1244
zend_fetch_dimension_address_read (& EX_T (opline -> result .var ), container , GET_OP2_ZVAL_PTR (BP_VAR_R ), OP2_TYPE , BP_VAR_IS TSRMLS_CC );
1254
1245
FREE_OP2 ();
1255
- FREE_OP1_VAR_PTR_FAST ();
1246
+ FREE_OP1 ();
1256
1247
CHECK_EXCEPTION ();
1257
1248
ZEND_VM_NEXT_OPCODE ();
1258
1249
}
@@ -1261,12 +1252,12 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
1261
1252
{
1262
1253
USE_OPLINE
1263
1254
zend_free_op free_op1 , free_op2 ;
1264
- zval * * container ;
1265
1255
1266
1256
SAVE_OPLINE ();
1267
1257
1268
1258
if (ARG_SHOULD_BE_SENT_BY_REF (EX (call )-> fbc , (opline -> extended_value & ZEND_FETCH_ARG_MASK ))) {
1269
- container = GET_OP1_ZVAL_PTR_PTR (BP_VAR_W );
1259
+ zval * * container = GET_OP1_ZVAL_PTR_PTR (BP_VAR_W );
1260
+
1270
1261
if (OP1_TYPE == IS_VAR && UNEXPECTED (container == NULL )) {
1271
1262
zend_error_noreturn (E_ERROR , "Cannot use string offset as an array" );
1272
1263
}
@@ -1277,13 +1268,15 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
1277
1268
FREE_OP2 ();
1278
1269
FREE_OP1_VAR_PTR ();
1279
1270
} else {
1271
+ zval * container ;
1272
+
1280
1273
if (OP2_TYPE == IS_UNUSED ) {
1281
1274
zend_error_noreturn (E_ERROR , "Cannot use [] for reading" );
1282
1275
}
1283
- container = GET_OP1_ZVAL_PTR_PTR_FAST (BP_VAR_R );
1276
+ container = GET_OP1_ZVAL_PTR (BP_VAR_R );
1284
1277
zend_fetch_dimension_address_read (& EX_T (opline -> result .var ), container , GET_OP2_ZVAL_PTR (BP_VAR_R ), OP2_TYPE , BP_VAR_R TSRMLS_CC );
1285
1278
FREE_OP2 ();
1286
- FREE_OP1_VAR_PTR_FAST ();
1279
+ FREE_OP1 ();
1287
1280
}
1288
1281
CHECK_EXCEPTION ();
1289
1282
ZEND_VM_NEXT_OPCODE ();
0 commit comments