summaryrefslogtreecommitdiff
path: root/ext/sockets/multicast.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2017-11-16 17:09:32 +0300
committerDmitry Stogov <dmitry@zend.com>2017-11-16 17:09:32 +0300
commitccc12b82da5dd10b44ab067b68b762298a9eb4eb (patch)
tree9b17d9d3f99f518fe44532c55ac255c3e0134a13 /ext/sockets/multicast.c
parentce18738a30b3d7f20b392c9167aa251c009a0c21 (diff)
downloadphp-git-ccc12b82da5dd10b44ab067b68b762298a9eb4eb.tar.gz
Avoid unnecessary reference-counting on strings.
Diffstat (limited to 'ext/sockets/multicast.c')
-rw-r--r--ext/sockets/multicast.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/sockets/multicast.c b/ext/sockets/multicast.c
index 9857be3982..9a10fd8118 100644
--- a/ext/sockets/multicast.c
+++ b/ext/sockets/multicast.c
@@ -100,9 +100,10 @@ static int php_get_if_index_from_zval(zval *val, unsigned *out)
ret = SUCCESS;
}
} else {
- zend_string *str = zval_get_string(val);
+ zend_string *tmp_str;
+ zend_string *str = zval_get_tmp_string(val, &tmp_str);
ret = php_string_to_if_index(ZSTR_VAL(str), out);
- zend_string_release(str);
+ zend_tmp_string_release(tmp_str);
}
return ret;
@@ -127,18 +128,18 @@ static int php_get_address_from_array(const HashTable *ht, const char *key,
php_socket *sock, php_sockaddr_storage *ss, socklen_t *ss_len)
{
zval *val;
- zend_string *str;
+ zend_string *str, *tmp_str;
if ((val = zend_hash_str_find(ht, key, strlen(key))) == NULL) {
php_error_docref(NULL, E_WARNING, "no key \"%s\" passed in optval", key);
return FAILURE;
}
- str = zval_get_string(val);
+ str = zval_get_tmp_string(val, &tmp_str);
if (!php_set_inet46_addr(ss, ss_len, ZSTR_VAL(str), sock)) {
- zend_string_release(str);
+ zend_tmp_string_release(tmp_str);
return FAILURE;
}
- zend_string_release(str);
+ zend_tmp_string_release(tmp_str);
return SUCCESS;
}