]> granicus.if.org Git - php/commitdiff
more z/Z fixes
authorAntony Dovgal <tony2001@php.net>
Thu, 31 Aug 2006 14:21:21 +0000 (14:21 +0000)
committerAntony Dovgal <tony2001@php.net>
Thu, 31 Aug 2006 14:21:21 +0000 (14:21 +0000)
ext/standard/string.c

index 2de5d03a4f6400a513f00b4dd546cd1cfca25a65..4ce916715a0567b1aff862a19d05159ef495c35c 100644 (file)
@@ -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;