@@ -965,8 +965,10 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
965
965
ZEND_API int mod_function (zval * result , zval * op1 , zval * op2 TSRMLS_DC ) /* {{{ */
966
966
{
967
967
zval op1_copy , op2_copy ;
968
+ long op1_lval ;
968
969
969
970
zendi_convert_to_long (op1 , op1_copy , result );
971
+ op1_lval = Z_LVAL_P (op1 );
970
972
zendi_convert_to_long (op2 , op2_copy , result );
971
973
972
974
if (Z_LVAL_P (op2 ) == 0 ) {
@@ -981,18 +983,20 @@ ZEND_API int mod_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
981
983
return SUCCESS ;
982
984
}
983
985
984
- ZVAL_LONG (result , Z_LVAL_P ( op1 ) % Z_LVAL_P (op2 ));
986
+ ZVAL_LONG (result , op1_lval % Z_LVAL_P (op2 ));
985
987
return SUCCESS ;
986
988
}
987
989
/* }}} */
988
990
989
991
ZEND_API int boolean_xor_function (zval * result , zval * op1 , zval * op2 TSRMLS_DC ) /* {{{ */
990
992
{
991
993
zval op1_copy , op2_copy ;
994
+ long op1_lval ;
992
995
993
996
zendi_convert_to_boolean (op1 , op1_copy , result );
997
+ op1_lval = Z_LVAL_P (op1 );
994
998
zendi_convert_to_boolean (op2 , op2_copy , result );
995
- ZVAL_BOOL (result , Z_LVAL_P ( op1 ) ^ Z_LVAL_P (op2 ));
999
+ ZVAL_BOOL (result , op1_lval ^ Z_LVAL_P (op2 ));
996
1000
return SUCCESS ;
997
1001
}
998
1002
/* }}} */
@@ -1038,6 +1042,7 @@ ZEND_API int bitwise_not_function(zval *result, zval *op1 TSRMLS_DC) /* {{{ */
1038
1042
ZEND_API int bitwise_or_function (zval * result , zval * op1 , zval * op2 TSRMLS_DC ) /* {{{ */
1039
1043
{
1040
1044
zval op1_copy , op2_copy ;
1045
+ long op1_lval ;
1041
1046
1042
1047
if (Z_TYPE_P (op1 ) == IS_STRING && Z_TYPE_P (op2 ) == IS_STRING ) {
1043
1048
zval * longer , * shorter ;
@@ -1066,16 +1071,18 @@ ZEND_API int bitwise_or_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /
1066
1071
return SUCCESS ;
1067
1072
}
1068
1073
zendi_convert_to_long (op1 , op1_copy , result );
1074
+ op1_lval = Z_LVAL_P (op1 );
1069
1075
zendi_convert_to_long (op2 , op2_copy , result );
1070
1076
1071
- ZVAL_LONG (result , Z_LVAL_P ( op1 ) | Z_LVAL_P (op2 ));
1077
+ ZVAL_LONG (result , op1_lval | Z_LVAL_P (op2 ));
1072
1078
return SUCCESS ;
1073
1079
}
1074
1080
/* }}} */
1075
1081
1076
1082
ZEND_API int bitwise_and_function (zval * result , zval * op1 , zval * op2 TSRMLS_DC ) /* {{{ */
1077
1083
{
1078
1084
zval op1_copy , op2_copy ;
1085
+ long op1_lval ;
1079
1086
1080
1087
if (Z_TYPE_P (op1 ) == IS_STRING && Z_TYPE_P (op2 ) == IS_STRING ) {
1081
1088
zval * longer , * shorter ;
@@ -1106,16 +1113,18 @@ ZEND_API int bitwise_and_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
1106
1113
1107
1114
1108
1115
zendi_convert_to_long (op1 , op1_copy , result );
1116
+ op1_lval = Z_LVAL_P (op1 );
1109
1117
zendi_convert_to_long (op2 , op2_copy , result );
1110
1118
1111
- ZVAL_LONG (result , Z_LVAL_P ( op1 ) & Z_LVAL_P (op2 ));
1119
+ ZVAL_LONG (result , op1_lval & Z_LVAL_P (op2 ));
1112
1120
return SUCCESS ;
1113
1121
}
1114
1122
/* }}} */
1115
1123
1116
1124
ZEND_API int bitwise_xor_function (zval * result , zval * op1 , zval * op2 TSRMLS_DC ) /* {{{ */
1117
1125
{
1118
1126
zval op1_copy , op2_copy ;
1127
+ long op1_lval ;
1119
1128
1120
1129
if (Z_TYPE_P (op1 ) == IS_STRING && Z_TYPE_P (op2 ) == IS_STRING ) {
1121
1130
zval * longer , * shorter ;
@@ -1145,31 +1154,36 @@ ZEND_API int bitwise_xor_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
1145
1154
}
1146
1155
1147
1156
zendi_convert_to_long (op1 , op1_copy , result );
1157
+ op1_lval = Z_LVAL_P (op1 );
1148
1158
zendi_convert_to_long (op2 , op2_copy , result );
1149
1159
1150
- ZVAL_LONG (result , Z_LVAL_P ( op1 ) ^ Z_LVAL_P (op2 ));
1160
+ ZVAL_LONG (result , op1_lval ^ Z_LVAL_P (op2 ));
1151
1161
return SUCCESS ;
1152
1162
}
1153
1163
/* }}} */
1154
1164
1155
1165
ZEND_API int shift_left_function (zval * result , zval * op1 , zval * op2 TSRMLS_DC ) /* {{{ */
1156
1166
{
1157
1167
zval op1_copy , op2_copy ;
1168
+ long op1_lval ;
1158
1169
1159
1170
zendi_convert_to_long (op1 , op1_copy , result );
1171
+ op1_lval = Z_LVAL_P (op1 );
1160
1172
zendi_convert_to_long (op2 , op2_copy , result );
1161
- ZVAL_LONG (result , Z_LVAL_P ( op1 ) << Z_LVAL_P (op2 ));
1173
+ ZVAL_LONG (result , op1_lval << Z_LVAL_P (op2 ));
1162
1174
return SUCCESS ;
1163
1175
}
1164
1176
/* }}} */
1165
1177
1166
1178
ZEND_API int shift_right_function (zval * result , zval * op1 , zval * op2 TSRMLS_DC ) /* {{{ */
1167
1179
{
1168
1180
zval op1_copy , op2_copy ;
1181
+ long op1_lval ;
1169
1182
1170
1183
zendi_convert_to_long (op1 , op1_copy , result );
1184
+ op1_lval = Z_LVAL_P (op1 );
1171
1185
zendi_convert_to_long (op2 , op2_copy , result );
1172
- ZVAL_LONG (result , Z_LVAL_P ( op1 ) >> Z_LVAL_P (op2 ));
1186
+ ZVAL_LONG (result , op1_lval >> Z_LVAL_P (op2 ));
1173
1187
return SUCCESS ;
1174
1188
}
1175
1189
/* }}} */
0 commit comments