@@ -297,6 +297,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
297297 }
298298 switch (Z_TYPE (op_array -> literals [i ])) {
299299 case IS_NULL :
300+ ZEND_ASSERT (info [i ].num_related == 1 );
300301 if (l_null < 0 ) {
301302 l_null = j ;
302303 if (i != j ) {
@@ -308,6 +309,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
308309 map [i ] = l_null ;
309310 break ;
310311 case IS_FALSE :
312+ ZEND_ASSERT (info [i ].num_related == 1 );
311313 if (l_false < 0 ) {
312314 l_false = j ;
313315 if (i != j ) {
@@ -319,6 +321,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
319321 map [i ] = l_false ;
320322 break ;
321323 case IS_TRUE :
324+ ZEND_ASSERT (info [i ].num_related == 1 );
322325 if (l_true < 0 ) {
323326 l_true = j ;
324327 if (i != j ) {
@@ -369,6 +372,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
369372 }
370373 break ;
371374 case IS_DOUBLE :
375+ ZEND_ASSERT (info [i ].num_related == 1 );
372376 if ((pos = zend_hash_str_find (& double_hash , (char * )& Z_DVAL (op_array -> literals [i ]), sizeof (double ))) != NULL ) {
373377 map [i ] = Z_LVAL_P (pos );
374378 } else {
@@ -399,10 +403,8 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
399403 } else {
400404 map [i ] = j ;
401405 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 );
406408 if (i != j ) {
407409 op_array -> literals [j ] = op_array -> literals [i ];
408410 info [j ] = info [i ];
@@ -419,6 +421,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
419421 break ;
420422 }
421423 case IS_ARRAY :
424+ ZEND_ASSERT (info [i ].num_related == 1 );
422425 if (zend_hash_num_elements (Z_ARRVAL (op_array -> literals [i ])) == 0 ) {
423426 if (l_empty_arr < 0 ) {
424427 l_empty_arr = j ;
@@ -436,6 +439,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
436439 ZEND_FALLTHROUGH ;
437440 default :
438441 /* don't merge other types */
442+ ZEND_ASSERT (info [i ].num_related == 1 );
439443 map [i ] = j ;
440444 if (i != j ) {
441445 op_array -> literals [j ] = op_array -> literals [i ];
0 commit comments