@@ -6371,69 +6371,35 @@ static void php_array_binop(INTERNAL_FUNCTION_PARAMETERS, const char *op_name, b
63716371
63726372 if (op == add_function ) {
63736373 zval * entry ;
6374- if (HT_IS_PACKED (input )) {
6375- ZEND_HASH_PACKED_FOREACH_VAL (input , entry ) {
6376- if (EXPECTED (Z_TYPE_P (entry ) == IS_LONG ) && EXPECTED (Z_TYPE_P (return_value ) == IS_LONG )) {
6377- fast_long_add_function (return_value , return_value , entry );
6378- continue ;
6379- }
6380- php_array_binop_apply (return_value , entry , op_name , op );
6381- } ZEND_HASH_FOREACH_END ();
6382- } else {
6383- ZEND_HASH_MAP_FOREACH_VAL (input , entry ) {
6384- if (EXPECTED (Z_TYPE_P (entry ) == IS_LONG ) && EXPECTED (Z_TYPE_P (return_value ) == IS_LONG )) {
6385- fast_long_add_function (return_value , return_value , entry );
6386- continue ;
6387- }
6388- php_array_binop_apply (return_value , entry , op_name , op );
6389- } ZEND_HASH_FOREACH_END ();
6390- }
6374+ ZEND_HASH_FOREACH_VAL (input , entry ) {
6375+ if (EXPECTED (Z_TYPE_P (entry ) == IS_LONG ) && EXPECTED (Z_TYPE_P (return_value ) == IS_LONG )) {
6376+ fast_long_add_function (return_value , return_value , entry );
6377+ continue ;
6378+ }
6379+ php_array_binop_apply (return_value , entry , op_name , op );
6380+ } ZEND_HASH_FOREACH_END ();
63916381 } else if (op == mul_function ) {
63926382 zval * entry ;
6393- if (HT_IS_PACKED (input )) {
6394- ZEND_HASH_PACKED_FOREACH_VAL (input , entry ) {
6395- if (EXPECTED (Z_TYPE_P (entry ) == IS_LONG ) && EXPECTED (Z_TYPE_P (return_value ) == IS_LONG )) {
6396- zend_long lval ;
6397- double dval ;
6398- int overflow ;
6399- ZEND_SIGNED_MULTIPLY_LONG (Z_LVAL_P (return_value ), Z_LVAL_P (entry ), lval , dval , overflow );
6400- if (UNEXPECTED (overflow )) {
6401- ZVAL_DOUBLE (return_value , dval );
6402- } else {
6403- Z_LVAL_P (return_value ) = lval ;
6404- }
6405- continue ;
6406- }
6407- php_array_binop_apply (return_value , entry , op_name , op );
6408- } ZEND_HASH_FOREACH_END ();
6409- } else {
6410- ZEND_HASH_MAP_FOREACH_VAL (input , entry ) {
6411- if (EXPECTED (Z_TYPE_P (entry ) == IS_LONG ) && EXPECTED (Z_TYPE_P (return_value ) == IS_LONG )) {
6412- zend_long lval ;
6413- double dval ;
6414- int overflow ;
6415- ZEND_SIGNED_MULTIPLY_LONG (Z_LVAL_P (return_value ), Z_LVAL_P (entry ), lval , dval , overflow );
6416- if (UNEXPECTED (overflow )) {
6417- ZVAL_DOUBLE (return_value , dval );
6418- } else {
6419- Z_LVAL_P (return_value ) = lval ;
6420- }
6421- continue ;
6383+ ZEND_HASH_FOREACH_VAL (input , entry ) {
6384+ if (EXPECTED (Z_TYPE_P (entry ) == IS_LONG ) && EXPECTED (Z_TYPE_P (return_value ) == IS_LONG )) {
6385+ zend_long lval ;
6386+ double dval ;
6387+ int overflow ;
6388+ ZEND_SIGNED_MULTIPLY_LONG (Z_LVAL_P (return_value ), Z_LVAL_P (entry ), lval , dval , overflow );
6389+ if (UNEXPECTED (overflow )) {
6390+ ZVAL_DOUBLE (return_value , dval );
6391+ } else {
6392+ Z_LVAL_P (return_value ) = lval ;
64226393 }
6423- php_array_binop_apply (return_value , entry , op_name , op );
6424- } ZEND_HASH_FOREACH_END ();
6425- }
6394+ continue ;
6395+ }
6396+ php_array_binop_apply (return_value , entry , op_name , op );
6397+ } ZEND_HASH_FOREACH_END ();
64266398 } else {
64276399 zval * entry ;
6428- if (HT_IS_PACKED (input )) {
6429- ZEND_HASH_PACKED_FOREACH_VAL (input , entry ) {
6430- php_array_binop_apply (return_value , entry , op_name , op );
6431- } ZEND_HASH_FOREACH_END ();
6432- } else {
6433- ZEND_HASH_MAP_FOREACH_VAL (input , entry ) {
6434- php_array_binop_apply (return_value , entry , op_name , op );
6435- } ZEND_HASH_FOREACH_END ();
6436- }
6400+ ZEND_HASH_FOREACH_VAL (input , entry ) {
6401+ php_array_binop_apply (return_value , entry , op_name , op );
6402+ } ZEND_HASH_FOREACH_END ();
64376403 }
64386404}
64396405
0 commit comments