summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2008-02-03 14:30:25 +0000
committerFelipe Pena <felipe@php.net>2008-02-03 14:30:25 +0000
commite2c7b27130bf9ddd1f6f08f52d2dcfe97e210a9f (patch)
tree101eda030ffeec6cefadd050cf79e50e35cd50dd
parenta61e5f897cea7b97a9a3829061cfffc09267a438 (diff)
downloadphp-git-e2c7b27130bf9ddd1f6f08f52d2dcfe97e210a9f.tar.gz
Fixed reference problem (variable were converted)
-rw-r--r--ext/standard/string.c38
1 files changed, 13 insertions, 25 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 5d5b963caf..11ee543ab1 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -1702,10 +1702,8 @@ PHP_FUNCTION(stristr)
return;
}
- SEPARATE_ZVAL(haystack);
- SEPARATE_ZVAL(needle);
-
- convert_to_string_ex(haystack);
+ SEPARATE_ZVAL(haystack);
+ convert_to_string(*haystack);
haystack_orig = estrndup(Z_STRVAL_PP(haystack), Z_STRLEN_PP(haystack));
@@ -1716,19 +1714,14 @@ PHP_FUNCTION(stristr)
RETURN_FALSE;
}
- found = php_stristr(Z_STRVAL_PP(haystack),
- Z_STRVAL_PP(needle),
- Z_STRLEN_PP(haystack),
- Z_STRLEN_PP(needle));
+ found = php_stristr(Z_STRVAL_PP(haystack), Z_STRVAL_PP(needle), Z_STRLEN_PP(haystack), Z_STRLEN_PP(needle));
} else {
- convert_to_long_ex(needle);
+ SEPARATE_ZVAL(needle);
+ convert_to_long(*needle);
needle_char[0] = (char) Z_LVAL_PP(needle);
needle_char[1] = 0;
- found = php_stristr(Z_STRVAL_PP(haystack),
- needle_char,
- Z_STRLEN_PP(haystack),
- 1);
+ found = php_stristr(Z_STRVAL_PP(haystack), needle_char, Z_STRLEN_PP(haystack), 1);
}
if (found) {
@@ -1760,7 +1753,8 @@ PHP_FUNCTION(strstr)
return;
}
- convert_to_string_ex(haystack);
+ SEPARATE_ZVAL(haystack);
+ convert_to_string(*haystack);
if (Z_TYPE_PP(needle) == IS_STRING) {
if (!Z_STRLEN_PP(needle)) {
@@ -1768,19 +1762,14 @@ PHP_FUNCTION(strstr)
RETURN_FALSE;
}
- found = php_memnstr(Z_STRVAL_PP(haystack),
- Z_STRVAL_PP(needle),
- Z_STRLEN_PP(needle),
- Z_STRVAL_PP(haystack) + Z_STRLEN_PP(haystack));
+ found = php_memnstr(Z_STRVAL_PP(haystack), Z_STRVAL_PP(needle), Z_STRLEN_PP(needle), Z_STRVAL_PP(haystack) + Z_STRLEN_PP(haystack));
} else {
- convert_to_long_ex(needle);
+ SEPARATE_ZVAL(needle);
+ convert_to_long(*needle);
needle_char[0] = (char) Z_LVAL_PP(needle);
needle_char[1] = 0;
- found = php_memnstr(Z_STRVAL_PP(haystack),
- needle_char,
- 1,
- Z_STRVAL_PP(haystack) + Z_STRLEN_PP(haystack));
+ found = php_memnstr(Z_STRVAL_PP(haystack), needle_char, 1, Z_STRVAL_PP(haystack) + Z_STRLEN_PP(haystack));
}
if (found) {
@@ -1790,9 +1779,8 @@ PHP_FUNCTION(strstr)
} else {
RETURN_STRINGL(found, Z_STRLEN_PP(haystack) - found_offset, 1);
}
- } else {
- RETURN_FALSE;
}
+ RETURN_FALSE;
}
/* }}} */