diff options
-rw-r--r-- | common.h | 3 | ||||
-rw-r--r-- | redis.c | 12 | ||||
-rw-r--r-- | redis_array.c | 12 | ||||
-rw-r--r-- | redis_array_impl.c | 6 |
4 files changed, 8 insertions, 25 deletions
@@ -412,11 +412,14 @@ typedef int strlen_t; /* References don't need any actions */ #define ZVAL_DEREF(v) PHPREDIS_NOTUSED(v) +#define PHPREDIS_GET_OBJECT(class_entry, z) (class_entry *)zend_objects_get_address(z TSRMLS_CC) + #else #include <zend_smart_str.h> #include <ext/standard/php_smart_string.h> typedef size_t strlen_t; #define PHPREDIS_ZVAL_IS_STRICT_FALSE(z) (Z_TYPE_P(z) == IS_FALSE) +#define PHPREDIS_GET_OBJECT(class_entry, z) (class_entry *)((char *)Z_OBJ_P(z) - XtOffsetOf(class_entry, std)) #endif /* NULL check so Eclipse doesn't go crazy */ @@ -564,11 +564,7 @@ redis_sock_get_instance(zval *id TSRMLS_DC, int no_throw) redis_object *redis; if (Z_TYPE_P(id) == IS_OBJECT) { -#if (PHP_MAJOR_VERSION < 7) - redis = (redis_object *)zend_objects_get_address(id TSRMLS_CC); -#else - redis = (redis_object *)((char *)Z_OBJ_P(id) - XtOffsetOf(redis_object, std)); -#endif + redis = PHPREDIS_GET_OBJECT(redis_object, id); if (redis->sock) { return redis->sock; } @@ -890,11 +886,7 @@ redis_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) port = 6379; } -#if (PHP_MAJOR_VERSION < 7) - redis = (redis_object *)zend_objects_get_address(object TSRMLS_CC); -#else - redis = (redis_object *)((char *)Z_OBJ_P(object) - XtOffsetOf(redis_object, std)); -#endif + redis = PHPREDIS_GET_OBJECT(redis_object, object); /* if there is a redis sock already we have to remove it */ if (redis->sock) { redis_sock_disconnect(redis->sock TSRMLS_CC); diff --git a/redis_array.c b/redis_array.c index 52713063..b293253f 100644 --- a/redis_array.c +++ b/redis_array.c @@ -245,11 +245,7 @@ redis_array_get(zval *id TSRMLS_DC) redis_array_object *obj; if (Z_TYPE_P(id) == IS_OBJECT) { -#if (PHP_MAJOR_VERSION < 7) - obj = (redis_array_object *)zend_objects_get_address(id TSRMLS_CC); -#else - obj = (redis_array_object *)((char *)Z_OBJ_P(id) - XtOffsetOf(redis_array_object, std)); -#endif + obj = PHPREDIS_GET_OBJECT(redis_array_object, id); return obj->ra; } return NULL; @@ -368,11 +364,7 @@ PHP_METHOD(RedisArray, __construct) ra->auto_rehash = b_autorehash; ra->connect_timeout = d_connect_timeout; if(ra->prev) ra->prev->auto_rehash = b_autorehash; -#if (PHP_MAJOR_VERSION < 7) - obj = (redis_array_object *)zend_objects_get_address(getThis() TSRMLS_CC); -#else - obj = (redis_array_object *)((char *)Z_OBJ_P(getThis()) - XtOffsetOf(redis_array_object, std)); -#endif + obj = PHPREDIS_GET_OBJECT(redis_array_object, getThis()); obj->ra = ra; } } diff --git a/redis_array_impl.c b/redis_array_impl.c index ebbaef5b..1a5aa7ba 100644 --- a/redis_array_impl.c +++ b/redis_array_impl.c @@ -69,11 +69,7 @@ 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 + redis = PHPREDIS_GET_OBJECT(redis_object, &ra->redis[i]); /* create socket */ redis->sock = redis_sock_create(host, host_len, port, ra->connect_timeout, ra->read_timeout, ra->pconnect, NULL, retry_interval, b_lazy_connect); |