summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2018-03-16 20:36:41 +0100
committerAnatol Belski <ab@php.net>2018-03-16 20:37:51 +0100
commitfa9ea3c9ebd8f3f781821fdc83a1bd6b38d866cd (patch)
tree84c53a461df8056a717fae17a461cfc5e8d60053
parent192956bb7f46a55b2a06742fa62bed0f2c154238 (diff)
downloadphp-git-fa9ea3c9ebd8f3f781821fdc83a1bd6b38d866cd.tar.gz
Use const pointers where appropriate
-rw-r--r--Zend/zend_operators.h2
-rw-r--r--ext/standard/php_string.h4
-rw-r--r--ext/standard/string.c116
3 files changed, 64 insertions, 58 deletions
diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h
index a815427286..e7e7c59452 100644
--- a/Zend/zend_operators.h
+++ b/Zend/zend_operators.h
@@ -208,7 +208,7 @@ static zend_always_inline const void *zend_memrchr(const void *s, int c, size_t
static zend_always_inline const char *
-zend_memnrstr(const char *haystack, const char *needle, size_t needle_len, char *end)
+zend_memnrstr(const char *haystack, const char *needle, size_t needle_len, const char *end)
{
const char *p = end;
const char ne = needle[needle_len-1];
diff --git a/ext/standard/php_string.h b/ext/standard/php_string.h
index 7de887eb55..152028ea15 100644
--- a/ext/standard/php_string.h
+++ b/ext/standard/php_string.h
@@ -140,8 +140,8 @@ PHPAPI void php_stripcslashes(zend_string *str);
PHPAPI zend_string *php_basename(const char *s, size_t len, char *suffix, size_t sufflen);
PHPAPI size_t php_dirname(char *str, size_t len);
PHPAPI char *php_stristr(char *s, char *t, size_t s_len, size_t t_len);
-PHPAPI zend_string *php_str_to_str(char *haystack, size_t length, char *needle,
- size_t needle_len, char *str, size_t str_len);
+PHPAPI zend_string *php_str_to_str(const char *haystack, size_t length, const char *needle,
+ size_t needle_len, const char *str, size_t str_len);
PHPAPI zend_string *php_trim(zend_string *str, char *what, size_t what_len, int mode);
PHPAPI size_t php_strip_tags(char *rbuf, size_t len, uint8_t *state, const char *allow, size_t allow_len);
PHPAPI size_t php_strip_tags_ex(char *rbuf, size_t len, uint8_t *stateptr, const char *allow, size_t allow_len, zend_bool allow_tag_spaces);
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 33b66f25d9..8f9049b3eb 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -1117,7 +1117,7 @@ PHPAPI void php_explode_negative_limit(const zend_string *delim, zend_string *st
#define EXPLODE_ALLOC_STEP 64
const char *p1 = ZSTR_VAL(str);
const char *endp = ZSTR_VAL(str) + ZSTR_LEN(str);
- const char *p2 = (char *) php_memnstr(ZSTR_VAL(str), ZSTR_VAL(delim), ZSTR_LEN(delim), endp);
+ const char *p2 = php_memnstr(ZSTR_VAL(str), ZSTR_VAL(delim), ZSTR_LEN(delim), endp);
zval tmp;
if (p2 == NULL) {
@@ -1137,7 +1137,7 @@ PHPAPI void php_explode_negative_limit(const zend_string *delim, zend_string *st
positions = erealloc(positions, allocated*sizeof(char *));
}
positions[found++] = p1 = p2 + ZSTR_LEN(delim);
- p2 = (char *) php_memnstr(p1, ZSTR_VAL(delim), ZSTR_LEN(delim), endp);
+ p2 = php_memnstr(p1, ZSTR_VAL(delim), ZSTR_LEN(delim), endp);
} while (p2 != NULL);
to_return = limit + found;
@@ -1850,7 +1850,7 @@ PHP_FUNCTION(stristr)
{
zval *needle;
zend_string *haystack;
- char *found = NULL;
+ const char *found = NULL;
size_t found_offset;
char *haystack_dup;
char needle_char[2];
@@ -1906,7 +1906,7 @@ PHP_FUNCTION(strstr)
{
zval *needle;
zend_string *haystack;
- char *found = NULL;
+ const char *found = NULL;
char needle_char[2];
zend_long found_offset;
zend_bool part = 0;
@@ -1924,14 +1924,14 @@ PHP_FUNCTION(strstr)
RETURN_FALSE;
}
- found = (char*)php_memnstr(ZSTR_VAL(haystack), Z_STRVAL_P(needle), Z_STRLEN_P(needle), ZSTR_VAL(haystack) + ZSTR_LEN(haystack));
+ found = php_memnstr(ZSTR_VAL(haystack), Z_STRVAL_P(needle), Z_STRLEN_P(needle), ZSTR_VAL(haystack) + ZSTR_LEN(haystack));
} else {
if (php_needle_char(needle, needle_char) != SUCCESS) {
RETURN_FALSE;
}
needle_char[1] = 0;
- found = (char*)php_memnstr(ZSTR_VAL(haystack), needle_char, 1, ZSTR_VAL(haystack) + ZSTR_LEN(haystack));
+ found = php_memnstr(ZSTR_VAL(haystack), needle_char, 1, ZSTR_VAL(haystack) + ZSTR_LEN(haystack));
}
if (found) {
@@ -1956,7 +1956,7 @@ PHP_FUNCTION(strpos)
{
zval *needle;
zend_string *haystack;
- char *found = NULL;
+ const char *found = NULL;
char needle_char[2];
zend_long offset = 0;
@@ -2009,7 +2009,7 @@ PHP_FUNCTION(strpos)
Finds position of first occurrence of a string within another, case insensitive */
PHP_FUNCTION(stripos)
{
- char *found = NULL;
+ const char *found = NULL;
zend_string *haystack;
zend_long offset = 0;
char needle_char[2];
@@ -2076,12 +2076,11 @@ PHP_FUNCTION(stripos)
PHP_FUNCTION(strrpos)
{
zval *zneedle;
- char *needle;
zend_string *haystack;
size_t needle_len;
zend_long offset = 0;
- char *p, *e, ord_needle[2];
- char *found;
+ char ord_needle[2];
+ const char *p, *e, *found, *needle;
ZEND_PARSE_PARAMETERS_START(2, 3)
Z_PARAM_STR(haystack)
@@ -2126,7 +2125,7 @@ PHP_FUNCTION(strrpos)
}
}
- if ((found = (char *)zend_memnrstr(p, needle, needle_len, e))) {
+ if ((found = zend_memnrstr(p, needle, needle_len, e))) {
RETURN_LONG(found - ZSTR_VAL(haystack));
}
@@ -2142,8 +2141,7 @@ PHP_FUNCTION(strripos)
zend_string *needle;
zend_string *haystack;
zend_long offset = 0;
- char *p, *e;
- char *found;
+ const char *p, *e, *found;
zend_string *needle_dup, *haystack_dup, *ord_needle = NULL;
ALLOCA_FLAG(use_heap);
@@ -2280,9 +2278,10 @@ PHP_FUNCTION(strrchr)
/* {{{ php_chunk_split
*/
-static zend_string *php_chunk_split(char *src, size_t srclen, char *end, size_t endlen, size_t chunklen)
+static zend_string *php_chunk_split(const char *src, size_t srclen, const char *end, size_t endlen, size_t chunklen)
{
- char *p, *q;
+ char *q;
+ const char *p;
size_t chunks; /* complete chunks! */
size_t restlen;
size_t out_len;
@@ -2713,8 +2712,8 @@ PHP_FUNCTION(substr_replace)
PHP_FUNCTION(quotemeta)
{
zend_string *old;
- char *old_end;
- char *p, *q;
+ const char *old_end, *p;
+ char *q;
char c;
zend_string *str;
@@ -2864,7 +2863,8 @@ PHP_FUNCTION(ucwords)
{
zend_string *str;
char *delims = " \t\r\n\f\v";
- register char *r, *r_end;
+ register char *r;
+ register const char *r_end;
size_t delims_len = 6;
char mask[256];
@@ -2986,7 +2986,7 @@ static zend_string *php_strtr_ex(zend_string *str, const char *str_from, const c
/* {{{ php_strtr_array */
static void php_strtr_array(zval *return_value, zend_string *input, HashTable *pats)
{
- char *str = ZSTR_VAL(input);
+ const char *str = ZSTR_VAL(input);
size_t slen = ZSTR_LEN(input);
zend_ulong num_key;
zend_string *str_key;
@@ -2996,7 +2996,7 @@ static void php_strtr_array(zval *return_value, zend_string *input, HashTable *p
size_t maxlen = 0;
HashTable str_hash;
zval *entry;
- char *key;
+ const char *key;
smart_str result = {0};
zend_ulong bitset[256/sizeof(zend_ulong)];
zend_ulong *num_bitset;
@@ -3127,7 +3127,8 @@ static zend_string* php_char_to_str_ex(zend_string *str, char from, char *to, si
zend_string *result;
size_t char_count = 0;
char lc_from = 0;
- char *source, *target, *source_end= ZSTR_VAL(str) + ZSTR_LEN(str);
+ const char *source, *source_end= ZSTR_VAL(str) + ZSTR_LEN(str);
+ char *target;
if (case_sensitivity) {
char *p = ZSTR_VAL(str), *e = p + ZSTR_LEN(str);
@@ -3194,13 +3195,14 @@ static zend_string* php_char_to_str_ex(zend_string *str, char from, char *to, si
/* {{{ php_str_to_str_ex
*/
static zend_string *php_str_to_str_ex(zend_string *haystack,
- char *needle, size_t needle_len, char *str, size_t str_len, zend_long *replace_count)
+ const char *needle, size_t needle_len, const char *str, size_t str_len, zend_long *replace_count)
{
zend_string *new_str;
if (needle_len < ZSTR_LEN(haystack)) {
- char *end;
- char *e, *s, *p, *r;
+ const char *end;
+ const char *s, *p, *r;
+ char *e;
if (needle_len == str_len) {
new_str = NULL;
@@ -3218,9 +3220,9 @@ static zend_string *php_str_to_str_ex(zend_string *haystack,
return new_str;
} else {
size_t count = 0;
- char *o = ZSTR_VAL(haystack);
- char *n = needle;
- char *endp = o + ZSTR_LEN(haystack);
+ const char *o = ZSTR_VAL(haystack);
+ const char *n = needle;
+ const char *endp = o + ZSTR_LEN(haystack);
while ((o = (char*)php_memnstr(o, n, needle_len, endp))) {
o += needle_len;
@@ -3236,7 +3238,7 @@ static zend_string *php_str_to_str_ex(zend_string *haystack,
new_str = zend_string_alloc(count * (str_len - needle_len) + ZSTR_LEN(haystack), 0);
}
- e = s = ZSTR_VAL(new_str);
+ s = e = ZSTR_VAL(new_str);
end = ZSTR_VAL(haystack) + ZSTR_LEN(haystack);
for (p = ZSTR_VAL(haystack); (r = (char*)php_memnstr(p, needle, needle_len, end)); p = r + needle_len) {
memcpy(e, p, r - p);
@@ -3274,15 +3276,16 @@ nothing_todo:
/* {{{ php_str_to_str_i_ex
*/
-static zend_string *php_str_to_str_i_ex(zend_string *haystack, char *lc_haystack,
- zend_string *needle, char *str, size_t str_len, zend_long *replace_count)
+static zend_string *php_str_to_str_i_ex(zend_string *haystack, const char *lc_haystack,
+ zend_string *needle, const char *str, size_t str_len, zend_long *replace_count)
{
zend_string *new_str = NULL;
zend_string *lc_needle;
if (ZSTR_LEN(needle) < ZSTR_LEN(haystack)) {
- char *end;
- char *e, *s, *p, *r;
+ const char *end;
+ const char *s, *p, *r;
+ char *e;
if (ZSTR_LEN(needle) == str_len) {
lc_needle = php_string_tolower(needle);
@@ -3302,9 +3305,9 @@ static zend_string *php_str_to_str_i_ex(zend_string *haystack, char *lc_haystack
return new_str;
} else {
size_t count = 0;
- char *o = lc_haystack;
- char *n;
- char *endp = o + ZSTR_LEN(haystack);
+ const char *o = lc_haystack;
+ const char *n;
+ const char *endp = o + ZSTR_LEN(haystack);
lc_needle = php_string_tolower(needle);
n = ZSTR_VAL(lc_needle);
@@ -3325,7 +3328,7 @@ static zend_string *php_str_to_str_i_ex(zend_string *haystack, char *lc_haystack
new_str = zend_string_alloc(count * (str_len - ZSTR_LEN(lc_needle)) + ZSTR_LEN(haystack), 0);
}
- e = s = ZSTR_VAL(new_str);
+ s = e = ZSTR_VAL(new_str);
end = lc_haystack + ZSTR_LEN(haystack);
for (p = lc_haystack; (r = (char*)php_memnstr(p, ZSTR_VAL(lc_needle), ZSTR_LEN(lc_needle), end)); p = r + ZSTR_LEN(lc_needle)) {
@@ -3368,13 +3371,14 @@ nothing_todo:
/* {{{ php_str_to_str
*/
-PHPAPI zend_string *php_str_to_str(char *haystack, size_t length, char *needle, size_t needle_len, char *str, size_t str_len)
+PHPAPI zend_string *php_str_to_str(const char *haystack, size_t length, const char *needle, size_t needle_len, const char *str, size_t str_len)
{
zend_string *new_str;
if (needle_len < length) {
- char *end;
- char *e, *s, *p, *r;
+ const char *end;
+ const char *s, *p;
+ char *e, *r;
if (needle_len == str_len) {
new_str = zend_string_init(haystack, length, 0);
@@ -3388,9 +3392,9 @@ PHPAPI zend_string *php_str_to_str(char *haystack, size_t length, char *needle,
new_str = zend_string_alloc(length, 0);
} else {
size_t count = 0;
- char *o = haystack;
- char *n = needle;
- char *endp = o + length;
+ const char *o = haystack;
+ const char *n = needle;
+ const char *endp = o + length;
while ((o = (char*)php_memnstr(o, n, needle_len, endp))) {
o += needle_len;
@@ -3409,7 +3413,7 @@ PHPAPI zend_string *php_str_to_str(char *haystack, size_t length, char *needle,
}
}
- e = s = ZSTR_VAL(new_str);
+ s = e = ZSTR_VAL(new_str);
end = haystack + length;
for (p = haystack; (r = (char*)php_memnstr(p, needle, needle_len, end)); p = r + needle_len) {
memcpy(e, p, r - p);
@@ -3522,7 +3526,8 @@ PHP_FUNCTION(strtr)
PHP_FUNCTION(strrev)
{
zend_string *str;
- char *s, *e, *p;
+ const char *s, *e;
+ char *p;
zend_string *n;
ZEND_PARSE_PARAMETERS_START(1, 1)
@@ -3564,9 +3569,9 @@ PHP_FUNCTION(strrev)
*/
static void php_similar_str(const char *txt1, size_t len1, const char *txt2, size_t len2, size_t *pos1, size_t *pos2, size_t *max, size_t *count)
{
- char *p, *q;
- char *end1 = (char *) txt1 + len1;
- char *end2 = (char *) txt2 + len2;
+ const char *p, *q;
+ const char *end1 = (char *) txt1 + len1;
+ const char *end2 = (char *) txt2 + len2;
size_t l;
*max = 0;
@@ -3739,7 +3744,8 @@ char *php_strerror(int errnum)
*/
PHPAPI void php_stripcslashes(zend_string *str)
{
- char *source, *target, *end;
+ const char *source, *end;
+ char *target;
size_t nlen = ZSTR_LEN(str), i;
char numtmp[4];
@@ -3803,8 +3809,8 @@ PHPAPI void php_stripcslashes(zend_string *str)
PHPAPI zend_string *php_addcslashes(zend_string *str, int should_free, char *what, size_t wlength)
{
char flags[256];
- char *source, *target;
- char *end;
+ char *target;
+ const char *source, *end;
char c;
size_t newlen;
zend_string *new_str = zend_string_safe_alloc(4, ZSTR_LEN(str), 0, 0);
@@ -3910,8 +3916,8 @@ zend_string *php_addslashes_sse42(zend_string *str, int should_free)
__m128i w128, s128;
uint32_t res = 0;
/* maximum string length, worst case situation */
- char *source, *target;
- char *end;
+ char *target;
+ const char *source, *end;
size_t offset;
zend_string *new_str;
@@ -4056,8 +4062,8 @@ PHPAPI zend_string *php_addslashes(zend_string *str, int should_free)
# endif
{
/* maximum string length, worst case situation */
- char *source, *target;
- char *end;
+ char *target;
+ const char *source, *end;
size_t offset;
zend_string *new_str;