Skip to content

Commit fdada7a

Browse files
committed
Use zend_register_persistent_resource_ex
1 parent d7b6e9d commit fdada7a

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

library.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,17 @@ redis_sock_get_connection_pool(RedisSock *redis_sock)
6363
zend_string *persistent_id = strpprintf(0, "phpredis_%s:%d", ZSTR_VAL(redis_sock->host), redis_sock->port);
6464
zend_resource *le = zend_hash_find_ptr(&EG(persistent_list), persistent_id);
6565
if (!le) {
66-
ConnectionPool *p = pecalloc(1, sizeof(*p) + sizeof(*le), 1);
66+
ConnectionPool *p = pecalloc(1, sizeof(*p), 1);
6767
zend_llist_init(&p->list, sizeof(php_stream *), NULL, 1);
68-
le = (zend_resource *)((char *)p + sizeof(*p));
69-
le->type = le_redis_pconnect;
70-
le->ptr = p;
71-
zend_hash_str_update_mem(&EG(persistent_list), ZSTR_VAL(persistent_id), ZSTR_LEN(persistent_id), le, sizeof(*le));
68+
#if (PHP_VERSION_ID < 70300)
69+
zend_resource res;
70+
res.type = le_redis_pconnect;
71+
res.ptr = p;
72+
le = &res;
73+
zend_hash_update_mem(&EG(persistent_list), persistent_id, le, sizeof(*le));
74+
#else
75+
le = zend_register_persistent_resource_ex(persistent_id, p, le_redis_pconnect);
76+
#endif
7277
}
7378
zend_string_release(persistent_id);
7479
return le->ptr;

0 commit comments

Comments
 (0)