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:
authormaxbeutel <me@maxbeutel.de>2012-05-23 17:32:38 +0400
committerNicolas Favre-Felix <n.favrefelix@gmail.com>2012-05-30 01:18:58 +0400
commit158d90b03505aa2a5eb52baca9762628176302ef (patch)
tree62f1ef92346cd0110cc2449c2e12430b00c69274 /library.c
parent38e2cca3cf0fa4caa269cfc9e10f6bae2b0ce461 (diff)
Fixing serializer initialization and destruction in PHP 5.4.
Diffstat (limited to 'library.c')
-rw-r--r--library.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/library.c b/library.c
index 6a1a6725..0cbcbaf9 100644
--- a/library.c
+++ b/library.c
@@ -1286,6 +1286,7 @@ redis_serialize(RedisSock *redis_sock, zval *z, char **val, int *val_len TSRMLS_
case REDIS_SERIALIZER_PHP:
#if ZEND_MODULE_API_NO >= 20100000
+ PHP_VAR_SERIALIZE_INIT(ht);
#else
zend_hash_init(&ht, 10, NULL, NULL, 0);
#endif
@@ -1293,6 +1294,7 @@ redis_serialize(RedisSock *redis_sock, zval *z, char **val, int *val_len TSRMLS_
*val = sstr.c;
*val_len = (int)sstr.len;
#if ZEND_MODULE_API_NO >= 20100000
+ PHP_VAR_SERIALIZE_DESTROY(ht);
#else
zend_hash_destroy(&ht);
#endif
@@ -1324,7 +1326,11 @@ redis_unserialize(RedisSock *redis_sock, const char *val, int val_len, zval **re
if(!*return_value) {
MAKE_STD_ZVAL(*return_value);
}
+#if ZEND_MODULE_API_NO >= 20100000
+ PHP_VAR_UNSERIALIZE_INIT(var_hash);
+#else
memset(&var_hash, 0, sizeof(var_hash));
+#endif
if(!php_var_unserialize(return_value, (const unsigned char**)&val,
(const unsigned char*)val + val_len, &var_hash TSRMLS_CC)) {
efree(*return_value);
@@ -1332,7 +1338,11 @@ redis_unserialize(RedisSock *redis_sock, const char *val, int val_len, zval **re
} else {
ret = 1;
}
+#if ZEND_MODULE_API_NO >= 20100000
+ PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
+#else
var_destroy(&var_hash);
+#endif
return ret;