Skip to content

Commit 68d5403

Browse files
authored
ext/sockets: using array optimisations. (php#18367)
mostly explicit packed arrays.
1 parent 2c3a2da commit 68d5403

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

ext/sockets/conversions.c

+1
Original file line numberDiff line numberDiff line change
@@ -1024,6 +1024,7 @@ static void to_zval_read_control_array(const char *msghdr_c, zval *zv, res_conte
10241024
uint32_t i = 1;
10251025

10261026
array_init(zv);
1027+
zend_hash_real_init_packed(Z_ARRVAL_P(zv));
10271028

10281029
for (cmsg = CMSG_FIRSTHDR(msg);
10291030
cmsg != NULL && !ctx->err.has_error;

ext/sockets/sockets.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -1973,6 +1973,7 @@ PHP_FUNCTION(socket_get_option)
19731973
size_t arrlen = optlen / sizeof(struct fil_info);
19741974

19751975
array_init_size(return_value, arrlen);
1976+
zend_hash_real_init_packed(Z_ARRVAL_P(return_value));
19761977

19771978
for (i = 0; i < arrlen; i++) {
19781979
add_index_string(return_value, i, fi[i].fi_name);
@@ -2373,7 +2374,7 @@ PHP_FUNCTION(socket_create_pair)
23732374
RETURN_FALSE;
23742375
}
23752376

2376-
fds_array_zval = zend_try_array_init(fds_array_zval);
2377+
fds_array_zval = zend_try_array_init_size(fds_array_zval, 2);
23772378
if (!fds_array_zval) {
23782379
zval_ptr_dtor(&retval[0]);
23792380
zval_ptr_dtor(&retval[1]);
@@ -2776,6 +2777,7 @@ PHP_FUNCTION(socket_addrinfo_lookup)
27762777
}
27772778

27782779
array_init(return_value);
2780+
zend_hash_real_init_packed(Z_ARRVAL_P(return_value));
27792781

27802782
for (rp = result; rp != NULL; rp = rp->ai_next) {
27812783
if (rp->ai_family != AF_UNSPEC) {

0 commit comments

Comments
 (0)