summaryrefslogtreecommitdiff
path: root/ext/standard/string.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/string.c')
-rw-r--r--ext/standard/string.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 706a3eb075..152ae6d66f 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -1663,12 +1663,10 @@ static int php_needle_char(zval *needle, char *target TSRMLS_DC)
return SUCCESS;
case IS_OBJECT:
{
- zval holder = *needle;
- zval_copy_ctor(&(holder));
- convert_to_long(&(holder));
- if(Z_TYPE(holder) != IS_LONG) {
- return FAILURE;
- }
+ zval holder;
+
+ ZVAL_LONG(&holder, zval_get_long(needle));
+
*target = (char)Z_LVAL(holder);
return SUCCESS;
}
@@ -2766,20 +2764,20 @@ PHP_FUNCTION(ucwords)
PHPAPI char *php_strtr(char *str, size_t len, char *str_from, char *str_to, size_t trlen)
{
size_t i;
- unsigned char xlat[256];
+ unsigned char xlat[256], j = 0;
if ((trlen < 1) || (len < 1)) {
return str;
}
- for (i = 0; i < 256; xlat[i] = i, i++);
+ do { xlat[j] = j; } while (++j != 0);
for (i = 0; i < trlen; i++) {
- xlat[(unsigned char) str_from[i]] = str_to[i];
+ xlat[(size_t)(unsigned char) str_from[i]] = str_to[i];
}
for (i = 0; i < len; i++) {
- str[i] = xlat[(unsigned char) str[i]];
+ str[i] = xlat[(size_t)(unsigned char) str[i]];
}
return str;
@@ -4185,7 +4183,7 @@ PHP_FUNCTION(setlocale)
#ifdef HAVE_SETLOCALE
if (Z_TYPE_P(pcategory) == IS_LONG) {
- cat = Z_LVAL_P(pcategory);
+ cat = (int)Z_LVAL_P(pcategory);
} else {
/* FIXME: The following behaviour should be removed. */
char *category;
@@ -4896,14 +4894,14 @@ PHP_FUNCTION(localeconv)
localeconv_r( &currlocdata );
/* Grab the grouping data out of the array */
- len = strlen(currlocdata.grouping);
+ len = (int)strlen(currlocdata.grouping);
for (i = 0; i < len; i++) {
add_index_long(&grouping, i, currlocdata.grouping[i]);
}
/* Grab the monetary grouping data out of the array */
- len = strlen(currlocdata.mon_grouping);
+ len = (int)strlen(currlocdata.mon_grouping);
for (i = 0; i < len; i++) {
add_index_long(&mon_grouping, i, currlocdata.mon_grouping[i]);
@@ -5346,7 +5344,7 @@ PHP_FUNCTION(str_split)
return;
}
- array_init_size(return_value, ((str->len - 1) / split_length) + 1);
+ array_init_size(return_value, (uint32_t)(((str->len - 1) / split_length) + 1));
n_reg_segments = str->len / split_length;
p = str->val;