diff options
author | Pavlo Yatsukhnenko <yatsukhnenko@gmail.com> | 2017-01-30 00:33:05 +0300 |
---|---|---|
committer | Pavlo Yatsukhnenko <yatsukhnenko@gmail.com> | 2017-02-10 18:41:03 +0300 |
commit | 8fa85afa7ab786ba124a86c7b9fdf34ecaff5aae (patch) | |
tree | ee81df9c7c09fb776f794e4242e3d46a351091d7 /redis_array_impl.c | |
parent | 388e4a84563233c7e436feea44ccbdd47027db1d (diff) |
redis_object
Diffstat (limited to 'redis_array_impl.c')
-rw-r--r-- | redis_array_impl.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/redis_array_impl.c b/redis_array_impl.c index 860b44a8..01f586ca 100644 --- a/redis_array_impl.c +++ b/redis_array_impl.c @@ -26,7 +26,6 @@ #define PHPREDIS_INDEX_NAME "__phpredis_array_index__" -extern int le_redis_sock; extern zend_class_entry *redis_ce; RedisArray* @@ -36,7 +35,7 @@ ra_load_hosts(RedisArray *ra, HashTable *hosts, long retry_interval, zend_bool b char *host, *p; short port; zval *zpData, z_cons, z_ret; - RedisSock *redis_sock = NULL; + redis_object *redis; /* function calls on the Redis object */ ZVAL_STRINGL(&z_cons, "__construct", 11); @@ -72,29 +71,21 @@ ra_load_hosts(RedisArray *ra, HashTable *hosts, long retry_interval, zend_bool b call_user_function(&redis_ce->function_table, &ra->redis[i], &z_cons, &z_ret, 0, NULL); zval_dtor(&z_ret); +#if (PHP_MAJOR_VERSION < 7) + redis = (redis_object *)zend_objects_get_address(&ra->redis[i] TSRMLS_CC); +#else + redis = (redis_object *)((char *)Z_OBJ_P(&ra->redis[i]) - XtOffsetOf(redis_object, std)); +#endif + /* create socket */ - redis_sock = redis_sock_create(host, host_len, port, ra->connect_timeout, ra->pconnect, NULL, retry_interval, b_lazy_connect); + redis->sock = redis_sock_create(host, host_len, port, ra->connect_timeout, ra->pconnect, NULL, retry_interval, b_lazy_connect); if (!b_lazy_connect) { /* connect */ - redis_sock_server_open(redis_sock, 1 TSRMLS_CC); + redis_sock_server_open(redis->sock, 1 TSRMLS_CC); } - /* attach */ -#if (PHP_MAJOR_VERSION < 7) - int id; -#if PHP_VERSION_ID >= 50400 - id = zend_list_insert(redis_sock, le_redis_sock TSRMLS_CC); -#else - id = zend_list_insert(redis_sock, le_redis_sock); -#endif - add_property_resource(&ra->redis[i], "socket", id); -#else - zval *id = zend_list_insert(redis_sock, le_redis_sock TSRMLS_CC); - add_property_resource(&ra->redis[i], "socket", Z_RES_P(id)); -#endif - ra->count = ++i; } |