diff options
author | maxbeutel <me@maxbeutel.de> | 2012-05-23 17:32:38 +0400 |
---|---|---|
committer | Nicolas Favre-Felix <n.favrefelix@gmail.com> | 2012-05-30 01:18:58 +0400 |
commit | 158d90b03505aa2a5eb52baca9762628176302ef (patch) | |
tree | 62f1ef92346cd0110cc2449c2e12430b00c69274 /library.c | |
parent | 38e2cca3cf0fa4caa269cfc9e10f6bae2b0ce461 (diff) |
Fixing serializer initialization and destruction in PHP 5.4.
Diffstat (limited to 'library.c')
-rw-r--r-- | library.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -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; |