Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common.h3
-rw-r--r--redis.c12
-rw-r--r--redis_array.c12
-rw-r--r--redis_array_impl.c6
4 files changed, 8 insertions, 25 deletions
diff --git a/common.h b/common.h
index 3d80d063..bbb747b7 100644
--- a/common.h
+++ b/common.h
@@ -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 */
diff --git a/redis.c b/redis.c
index f008c0c5..8475385d 100644
--- a/redis.c
+++ b/redis.c
@@ -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);