@@ -297,6 +297,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
297
297
}
298
298
switch (Z_TYPE (op_array -> literals [i ])) {
299
299
case IS_NULL :
300
+ ZEND_ASSERT (info [i ].num_related == 1 );
300
301
if (l_null < 0 ) {
301
302
l_null = j ;
302
303
if (i != j ) {
@@ -308,6 +309,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
308
309
map [i ] = l_null ;
309
310
break ;
310
311
case IS_FALSE :
312
+ ZEND_ASSERT (info [i ].num_related == 1 );
311
313
if (l_false < 0 ) {
312
314
l_false = j ;
313
315
if (i != j ) {
@@ -319,6 +321,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
319
321
map [i ] = l_false ;
320
322
break ;
321
323
case IS_TRUE :
324
+ ZEND_ASSERT (info [i ].num_related == 1 );
322
325
if (l_true < 0 ) {
323
326
l_true = j ;
324
327
if (i != j ) {
@@ -369,6 +372,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
369
372
}
370
373
break ;
371
374
case IS_DOUBLE :
375
+ ZEND_ASSERT (info [i ].num_related == 1 );
372
376
if ((pos = zend_hash_str_find (& double_hash , (char * )& Z_DVAL (op_array -> literals [i ]), sizeof (double ))) != NULL ) {
373
377
map [i ] = Z_LVAL_P (pos );
374
378
} else {
@@ -399,10 +403,8 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
399
403
} else {
400
404
map [i ] = j ;
401
405
ZVAL_LONG (& zv , j );
402
- if (key ) {
403
- zend_hash_add_new (& hash , key , & zv );
404
- zend_string_release_ex (key , 0 );
405
- }
406
+ zend_hash_add_new (& hash , key , & zv );
407
+ zend_string_release_ex (key , 0 );
406
408
if (i != j ) {
407
409
op_array -> literals [j ] = op_array -> literals [i ];
408
410
info [j ] = info [i ];
@@ -419,6 +421,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
419
421
break ;
420
422
}
421
423
case IS_ARRAY :
424
+ ZEND_ASSERT (info [i ].num_related == 1 );
422
425
if (zend_hash_num_elements (Z_ARRVAL (op_array -> literals [i ])) == 0 ) {
423
426
if (l_empty_arr < 0 ) {
424
427
l_empty_arr = j ;
@@ -436,6 +439,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
436
439
ZEND_FALLTHROUGH ;
437
440
default :
438
441
/* don't merge other types */
442
+ ZEND_ASSERT (info [i ].num_related == 1 );
439
443
map [i ] = j ;
440
444
if (i != j ) {
441
445
op_array -> literals [j ] = op_array -> literals [i ];
0 commit comments