Skip to content

Commit e7135cb

Browse files
committed
Use zend_string_equals_* API in a couple of more place
Closes phpGH-6979
1 parent aca6aef commit e7135cb

File tree

7 files changed

+82
-93
lines changed

7 files changed

+82
-93
lines changed

ext/dom/node.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ int dom_node_prefix_read(dom_object *obj, zval *retval)
603603

604604
int dom_node_prefix_write(dom_object *obj, zval *newval)
605605
{
606-
zend_string *str;
606+
zend_string *prefix_str;
607607
xmlNode *nodep, *nsnode = NULL;
608608
xmlNsPtr ns = NULL, curns;
609609
char *strURI;
@@ -627,17 +627,17 @@ int dom_node_prefix_write(dom_object *obj, zval *newval)
627627
nsnode = xmlDocGetRootElement(nodep->doc);
628628
}
629629
}
630-
str = zval_try_get_string(newval);
631-
if (UNEXPECTED(!str)) {
630+
prefix_str = zval_try_get_string(newval);
631+
if (UNEXPECTED(!prefix_str)) {
632632
return FAILURE;
633633
}
634634

635-
prefix = ZSTR_VAL(str);
635+
prefix = ZSTR_VAL(prefix_str);
636636
if (nsnode && nodep->ns != NULL && !xmlStrEqual(nodep->ns->prefix, (xmlChar *)prefix)) {
637637
strURI = (char *) nodep->ns->href;
638638
if (strURI == NULL ||
639-
(!strcmp(prefix, "xml") && strcmp(strURI, (char *) XML_XML_NAMESPACE)) ||
640-
(nodep->type == XML_ATTRIBUTE_NODE && !strcmp(prefix, "xmlns") &&
639+
(zend_string_equals_literal(prefix_str, "xml") && strcmp(strURI, (char *) XML_XML_NAMESPACE)) ||
640+
(nodep->type == XML_ATTRIBUTE_NODE && zend_string_equals_literal(prefix_str, "xmlns") &&
641641
strcmp(strURI, (char *) DOM_XMLNS_NAMESPACE)) ||
642642
(nodep->type == XML_ATTRIBUTE_NODE && !strcmp((char *) nodep->name, "xmlns"))) {
643643
ns = NULL;
@@ -656,14 +656,14 @@ int dom_node_prefix_write(dom_object *obj, zval *newval)
656656
}
657657

658658
if (ns == NULL) {
659-
zend_string_release_ex(str, 0);
659+
zend_string_release_ex(prefix_str, 0);
660660
php_dom_throw_error(NAMESPACE_ERR, dom_get_strict_error(obj->document));
661661
return FAILURE;
662662
}
663663

664664
xmlSetNs(nodep, ns);
665665
}
666-
zend_string_release_ex(str, 0);
666+
zend_string_release_ex(prefix_str, 0);
667667
break;
668668
default:
669669
break;

ext/gettext/gettext.c

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -71,19 +71,16 @@ PHP_MINFO_FUNCTION(php_gettext)
7171
/* {{{ Set the textdomain to "domain". Returns the current domain */
7272
PHP_FUNCTION(textdomain)
7373
{
74-
char *domain = NULL, *domain_name, *retval;
75-
size_t domain_len = 0;
74+
char *domain_name = NULL, *retval;
75+
zend_string *domain = NULL;
7676

77-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s!", &domain, &domain_len) == FAILURE) {
77+
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S!", &domain) == FAILURE) {
7878
RETURN_THROWS();
7979
}
8080

81-
PHP_GETTEXT_DOMAIN_LENGTH_CHECK(1, domain_len)
82-
83-
if (domain != NULL && strcmp(domain, "") && strcmp(domain, "0")) {
84-
domain_name = domain;
85-
} else {
86-
domain_name = NULL;
81+
if (domain != NULL && ZSTR_LEN(domain) != 0 && !zend_string_equals_literal(domain, "0")) {
82+
PHP_GETTEXT_DOMAIN_LENGTH_CHECK(1, ZSTR_LEN(domain))
83+
domain_name = ZSTR_VAL(domain);
8784
}
8885

8986
retval = textdomain(domain_name);
@@ -163,11 +160,12 @@ PHP_FUNCTION(dcgettext)
163160
/* {{{ Bind to the text domain domain_name, looking for translations in dir. Returns the current domain */
164161
PHP_FUNCTION(bindtextdomain)
165162
{
166-
char *domain, *dir = NULL;
167-
size_t domain_len, dir_len;
163+
char *domain;
164+
size_t domain_len;
165+
zend_string *dir = NULL;
168166
char *retval, dir_name[MAXPATHLEN];
169167

170-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss!", &domain, &domain_len, &dir, &dir_len) == FAILURE) {
168+
if (zend_parse_parameters(ZEND_NUM_ARGS(), "sS!", &domain, &domain_len, &dir) == FAILURE) {
171169
RETURN_THROWS();
172170
}
173171

@@ -182,8 +180,8 @@ PHP_FUNCTION(bindtextdomain)
182180
RETURN_STRING(bindtextdomain(domain, NULL));
183181
}
184182

185-
if (dir[0] != '\0' && strcmp(dir, "0")) {
186-
if (!VCWD_REALPATH(dir, dir_name)) {
183+
if (ZSTR_LEN(dir) != 0 && !zend_string_equals_literal(dir, "0")) {
184+
if (!VCWD_REALPATH(ZSTR_VAL(dir), dir_name)) {
187185
RETURN_FALSE;
188186
}
189187
} else if (!VCWD_GETCWD(dir_name, MAXPATHLEN)) {

ext/mbstring/mbstring.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ static int php_mb_parse_encoding_array(HashTable *target_hash, const mbfl_encodi
357357
return FAILURE;
358358
}
359359

360-
if (strcasecmp(ZSTR_VAL(encoding_str), "auto") == 0) {
360+
if (zend_string_equals_literal_ci(encoding_str, "auto")) {
361361
if (!included_auto) {
362362
const enum mbfl_no_encoding *src = MBSTRG(default_detect_order_list);
363363
const size_t identify_list_size = MBSTRG(default_detect_order_list_size);

ext/phar/phar_object.c

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -885,22 +885,16 @@ PHP_METHOD(Phar, mungServer)
885885
RETURN_THROWS();
886886
}
887887

888-
if (Z_STRLEN_P(data) == sizeof("PHP_SELF")-1 && !strncmp(Z_STRVAL_P(data), "PHP_SELF", sizeof("PHP_SELF")-1)) {
888+
if (zend_string_equals_literal(Z_STR_P(data), "PHP_SELF")) {
889889
PHAR_G(phar_SERVER_mung_list) |= PHAR_MUNG_PHP_SELF;
890-
}
891-
892-
if (Z_STRLEN_P(data) == sizeof("REQUEST_URI")-1) {
893-
if (!strncmp(Z_STRVAL_P(data), "REQUEST_URI", sizeof("REQUEST_URI")-1)) {
894-
PHAR_G(phar_SERVER_mung_list) |= PHAR_MUNG_REQUEST_URI;
895-
}
896-
if (!strncmp(Z_STRVAL_P(data), "SCRIPT_NAME", sizeof("SCRIPT_NAME")-1)) {
897-
PHAR_G(phar_SERVER_mung_list) |= PHAR_MUNG_SCRIPT_NAME;
898-
}
899-
}
900-
901-
if (Z_STRLEN_P(data) == sizeof("SCRIPT_FILENAME")-1 && !strncmp(Z_STRVAL_P(data), "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME")-1)) {
890+
} else if (zend_string_equals_literal(Z_STR_P(data), "REQUEST_URI")) {
891+
PHAR_G(phar_SERVER_mung_list) |= PHAR_MUNG_REQUEST_URI;
892+
} else if (zend_string_equals_literal(Z_STR_P(data), "SCRIPT_NAME")) {
893+
PHAR_G(phar_SERVER_mung_list) |= PHAR_MUNG_SCRIPT_NAME;
894+
} else if (zend_string_equals_literal(Z_STR_P(data), "SCRIPT_FILENAME")) {
902895
PHAR_G(phar_SERVER_mung_list) |= PHAR_MUNG_SCRIPT_FILENAME;
903896
}
897+
// TODO Warning for invalid value?
904898
} ZEND_HASH_FOREACH_END();
905899
}
906900
/* }}} */

ext/soap/soap.c

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -731,23 +731,19 @@ static HashTable* soap_create_typemap(sdlPtr sdl, HashTable *ht) /* {{{ */
731731

732732
ZEND_HASH_FOREACH_STR_KEY_VAL(ht2, name, tmp) {
733733
if (name) {
734-
if (ZSTR_LEN(name) == sizeof("type_name")-1 &&
735-
strncmp(ZSTR_VAL(name), "type_name", sizeof("type_name")-1) == 0) {
734+
if (zend_string_equals_literal(name, "type_name")) {
736735
if (Z_TYPE_P(tmp) == IS_STRING) {
737736
type_name = Z_STRVAL_P(tmp);
738737
} else if (Z_TYPE_P(tmp) != IS_NULL) {
739738
}
740-
} else if (ZSTR_LEN(name) == sizeof("type_ns")-1 &&
741-
strncmp(ZSTR_VAL(name), "type_ns", sizeof("type_ns")-1) == 0) {
739+
} else if (zend_string_equals_literal(name, "type_ns")) {
742740
if (Z_TYPE_P(tmp) == IS_STRING) {
743741
type_ns = Z_STRVAL_P(tmp);
744742
} else if (Z_TYPE_P(tmp) != IS_NULL) {
745743
}
746-
} else if (ZSTR_LEN(name) == sizeof("to_xml")-1 &&
747-
strncmp(ZSTR_VAL(name), "to_xml", sizeof("to_xml")-1) == 0) {
744+
} else if (zend_string_equals_literal(name, "to_xml")) {
748745
to_xml = tmp;
749-
} else if (ZSTR_LEN(name) == sizeof("from_xml")-1 &&
750-
strncmp(ZSTR_VAL(name), "from_xml", sizeof("from_xml")-1) == 0) {
746+
} else if (zend_string_equals_literal(name, "from_xml")) {
751747
to_zval = tmp;
752748
}
753749
}
@@ -1756,7 +1752,7 @@ static void soap_server_fault_ex(sdlFunctionPtr function, zval* fault, soapHeade
17561752
if ((Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY || zend_is_auto_global(ZSTR_KNOWN(ZEND_STR_AUTOGLOBAL_SERVER))) &&
17571753
(agent_name = zend_hash_str_find(Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]), "HTTP_USER_AGENT", sizeof("HTTP_USER_AGENT")-1)) != NULL &&
17581754
Z_TYPE_P(agent_name) == IS_STRING) {
1759-
if (strncmp(Z_STRVAL_P(agent_name), "Shockwave Flash", sizeof("Shockwave Flash")-1) == 0) {
1755+
if (zend_string_equals_literal(Z_STR_P(agent_name), "Shockwave Flash")) {
17601756
use_http_error_status = 0;
17611757
}
17621758
}

ext/standard/basic_functions.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2246,12 +2246,13 @@ PHP_FUNCTION(ignore_user_abort)
22462246
/* {{{ Returns port associated with service. Protocol must be "tcp" or "udp" */
22472247
PHP_FUNCTION(getservbyname)
22482248
{
2249-
char *name, *proto;
2250-
size_t name_len, proto_len;
2249+
zend_string *name;
2250+
char *proto;
2251+
size_t proto_len;
22512252
struct servent *serv;
22522253

22532254
ZEND_PARSE_PARAMETERS_START(2, 2)
2254-
Z_PARAM_STRING(name, name_len)
2255+
Z_PARAM_STR(name)
22552256
Z_PARAM_STRING(proto, proto_len)
22562257
ZEND_PARSE_PARAMETERS_END();
22572258

@@ -2264,14 +2265,14 @@ PHP_FUNCTION(getservbyname)
22642265
}
22652266
#endif
22662267

2267-
serv = getservbyname(name, proto);
2268+
serv = getservbyname(ZSTR_VAL(name), proto);
22682269

22692270
#if defined(_AIX)
22702271
/*
22712272
On AIX, imap is only known as imap2 in /etc/services, while on Linux imap is an alias for imap2.
22722273
If a request for imap gives no result, we try again with imap2.
22732274
*/
2274-
if (serv == NULL && strcmp(name, "imap") == 0) {
2275+
if (serv == NULL && zend_string_equals_literal(name, "imap")) {
22752276
serv = getservbyname("imap2", proto);
22762277
}
22772278
#endif

0 commit comments

Comments
 (0)