mirror of
https://github.com/php/php-src.git
synced 2025-01-07 03:13:33 +08:00
more z/Z fixes
This commit is contained in:
parent
de23f39d18
commit
0c482b5c64
@ -1741,22 +1741,22 @@ PHP_FUNCTION(stripos)
|
||||
Finds position of last occurrence of a string within another string */
|
||||
PHP_FUNCTION(strrpos)
|
||||
{
|
||||
zval *zneedle;
|
||||
zval **zneedle;
|
||||
char *needle, *haystack;
|
||||
int needle_len, haystack_len;
|
||||
long offset = 0;
|
||||
char *p, *e, ord_needle[2];
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|l", &haystack, &haystack_len, &zneedle, &offset) == FAILURE) {
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sZ|l", &haystack, &haystack_len, &zneedle, &offset) == FAILURE) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
if (Z_TYPE_P(zneedle) == IS_STRING) {
|
||||
needle = Z_STRVAL_P(zneedle);
|
||||
needle_len = Z_STRLEN_P(zneedle);
|
||||
if (Z_TYPE_PP(zneedle) == IS_STRING) {
|
||||
needle = Z_STRVAL_PP(zneedle);
|
||||
needle_len = Z_STRLEN_PP(zneedle);
|
||||
} else {
|
||||
convert_to_long(zneedle);
|
||||
ord_needle[0] = (char)(Z_LVAL_P(zneedle) & 0xFF);
|
||||
convert_to_long_ex(zneedle);
|
||||
ord_needle[0] = (char)(Z_LVAL_PP(zneedle) & 0xFF);
|
||||
ord_needle[1] = '\0';
|
||||
needle = ord_needle;
|
||||
needle_len = 1;
|
||||
@ -1806,23 +1806,23 @@ PHP_FUNCTION(strrpos)
|
||||
Finds position of last occurrence of a string within another string */
|
||||
PHP_FUNCTION(strripos)
|
||||
{
|
||||
zval *zneedle;
|
||||
zval **zneedle;
|
||||
char *needle, *haystack;
|
||||
int needle_len, haystack_len;
|
||||
long offset = 0;
|
||||
char *p, *e, ord_needle[2];
|
||||
char *needle_dup, *haystack_dup;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|l", &haystack, &haystack_len, &zneedle, &offset) == FAILURE) {
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sZ|l", &haystack, &haystack_len, &zneedle, &offset) == FAILURE) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
if (Z_TYPE_P(zneedle) == IS_STRING) {
|
||||
needle = Z_STRVAL_P(zneedle);
|
||||
needle_len = Z_STRLEN_P(zneedle);
|
||||
if (Z_TYPE_PP(zneedle) == IS_STRING) {
|
||||
needle = Z_STRVAL_PP(zneedle);
|
||||
needle_len = Z_STRLEN_PP(zneedle);
|
||||
} else {
|
||||
convert_to_long(zneedle);
|
||||
ord_needle[0] = (char)(Z_LVAL_P(zneedle) & 0xFF);
|
||||
convert_to_long_ex(zneedle);
|
||||
ord_needle[0] = (char)(Z_LVAL_PP(zneedle) & 0xFF);
|
||||
ord_needle[1] = '\0';
|
||||
needle = ord_needle;
|
||||
needle_len = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user