summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2015-03-03 19:16:49 +0100
committerRemi Collet <fedora@famillecollet.com>2015-03-03 19:16:49 +0100
commit791f485ba04a4912a33264e572a1c2a080ddd012 (patch)
tree6e598b94761afa99fd0287df042b9024d213cccc
parent4a9f378d60a1a18f9652526782eaf2e07936c9e7 (diff)
php-pecl-redis: 2.2.7 (stable)
-rw-r--r--REFLECTION33
-rw-r--r--php-pecl-redis.spec31
-rw-r--r--redis-igbinary.patch27
-rw-r--r--redis-php56.patch363
4 files changed, 48 insertions, 406 deletions
diff --git a/REFLECTION b/REFLECTION
index f0221ed..09661f8 100644
--- a/REFLECTION
+++ b/REFLECTION
@@ -1,4 +1,4 @@
-Extension [ <persistent> extension #159 redis version 2.2.5 ] {
+Extension [ <persistent> extension #178 redis version 2.2.7 ] {
- INI {
Entry [ redis.arrays.names <ALL> ]
@@ -56,7 +56,7 @@ Extension [ <persistent> extension #159 redis version 2.2.5 ] {
- Properties [0] {
}
- - Methods [194] {
+ - Methods [201] {
Method [ <internal:redis, ctor> public method __construct ] {
}
@@ -348,6 +348,9 @@ Extension [ <persistent> extension #159 redis version 2.2.5 ] {
Method [ <internal:redis> public method zRevRangeByScore ] {
}
+ Method [ <internal:redis> public method zRangeByLex ] {
+ }
+
Method [ <internal:redis> public method zCount ] {
}
@@ -471,6 +474,9 @@ Extension [ <persistent> extension #159 redis version 2.2.5 ] {
Method [ <internal:redis> public method script ] {
}
+ Method [ <internal:redis> public method debug ] {
+ }
+
Method [ <internal:redis> public method dump ] {
}
@@ -537,6 +543,15 @@ Extension [ <persistent> extension #159 redis version 2.2.5 ] {
}
}
+ Method [ <internal:redis> public method pfadd ] {
+ }
+
+ Method [ <internal:redis> public method pfcount ] {
+ }
+
+ Method [ <internal:redis> public method pfmerge ] {
+ }
+
Method [ <internal:redis> public method getOption ] {
}
@@ -549,6 +564,9 @@ Extension [ <persistent> extension #159 redis version 2.2.5 ] {
Method [ <internal:redis> public method slowlog ] {
}
+ Method [ <internal:redis> public method rawCommand ] {
+ }
+
Method [ <internal:redis> public method getHost ] {
}
@@ -573,6 +591,9 @@ Extension [ <persistent> extension #159 redis version 2.2.5 ] {
Method [ <internal:redis> public method isConnected ] {
}
+ Method [ <internal:redis> public method getMode ] {
+ }
+
Method [ <internal:redis> public method wait ] {
}
@@ -682,7 +703,7 @@ Extension [ <persistent> extension #159 redis version 2.2.5 ] {
- Properties [0] {
}
- - Methods [25] {
+ - Methods [27] {
Method [ <internal:redis, ctor> public method __construct ] {
}
@@ -745,6 +766,12 @@ Extension [ <persistent> extension #159 redis version 2.2.5 ] {
Method [ <internal:redis> public method keys ] {
}
+ Method [ <internal:redis> public method save ] {
+ }
+
+ Method [ <internal:redis> public method bgsave ] {
+ }
+
Method [ <internal:redis> public method multi ] {
}
diff --git a/php-pecl-redis.spec b/php-pecl-redis.spec
index f49250b..85726d2 100644
--- a/php-pecl-redis.spec
+++ b/php-pecl-redis.spec
@@ -24,19 +24,14 @@
Summary: Extension for communicating with the Redis key-value store
Name: %{?scl_prefix}php-pecl-redis
-Version: 2.2.5
-Release: 5%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}.1
+Version: 2.2.7
+Release: 1%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}
License: PHP
Group: Development/Languages
URL: http://pecl.php.net/package/redis
Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
# https://github.com/nicolasff/phpredis/issues/332 - missing tests
-Source1: https://github.com/nicolasff/phpredis/archive/%{version}.tar.gz
-
-# https://github.com/nicolasff/phpredis/pull/447
-Patch0: %{pecl_name}-php56.patch
-# https://github.com/nicolasff/phpredis/pull/517
-Patch1: %{pecl_name}-igbinary.patch
+Source1: https://github.com/phpredis/phpredis/archive/%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: %{?scl_prefix}php-devel
@@ -101,8 +96,6 @@ mv %{pecl_name}-%{version} NTS
mv phpredis-%{version}/tests NTS/tests
cd NTS
-%patch0 -p1 -b .php56
-%patch1 -p1 -b .igbinary
# Sanity check, really often broken
extver=$(sed -n '/#define PHP_REDIS_VERSION/{s/.* "//;s/".*$//;p}' php_redis.h)
@@ -241,12 +234,20 @@ exit $ret
%endif
-%post
-%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
+# when pear installed alone, after us
+%triggerin -- %{?scl_prefix}php-pear
+if [ -x %{__pecl} ] ; then
+ %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
+fi
+# posttrans as pear can be installed after us
+%posttrans
+if [ -x %{__pecl} ] ; then
+ %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
+fi
%postun
-if [ $1 -eq 0 ] ; then
+if [ $1 -eq 0 -a -x %{__pecl} ] ; then
%{pecl_uninstall} %{pecl_name} >/dev/null || :
fi
@@ -271,6 +272,10 @@ rm -rf %{buildroot}
%changelog
+* Tue Mar 03 2015 Remi Collet <remi@fedoraproject.org> - 2.2.7-1
+- Update to 2.2.7 (stable)
+- drop runtime dependency on pear, new scriptlets
+
* Wed Dec 24 2014 Remi Collet <remi@fedoraproject.org> - 2.2.5-5.1
- Fedora 21 SCL mass rebuild
diff --git a/redis-igbinary.patch b/redis-igbinary.patch
deleted file mode 100644
index d860c19..0000000
--- a/redis-igbinary.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 0c4ddd90a6cfb0660cb59fd4521b40d289d6067c Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Fri, 3 Oct 2014 19:19:33 +0200
-Subject: [PATCH] Fix segfault with igbinary, fix #341
-
----
- library.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/library.c b/library.c
-index 40d43fa..3e91e93 100644
---- a/library.c
-+++ b/library.c
-@@ -1646,11 +1646,12 @@ redis_unserialize(RedisSock *redis_sock, const char *val, int val_len, zval **re
- #ifdef HAVE_REDIS_IGBINARY
- if(!*return_value) {
- MAKE_STD_ZVAL(*return_value);
-+ rv_free = 1;
- }
- if(igbinary_unserialize((const uint8_t *)val, (size_t)val_len, return_value TSRMLS_CC) == 0) {
- return 1;
- }
-- efree(*return_value);
-+ if(rv_free==1) efree(*return_value);
- #endif
- return 0;
- break;
diff --git a/redis-php56.patch b/redis-php56.patch
deleted file mode 100644
index f97af12..0000000
--- a/redis-php56.patch
+++ /dev/null
@@ -1,363 +0,0 @@
-From 5520be1042d1b97728a3f8e04ed3c5a6fd0da9f8 Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Thu, 20 Mar 2014 13:48:04 +0100
-Subject: [PATCH 2/7] Fix memory corruption observed with PHP 5.6.0-dev
-
----
- library.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/library.c b/library.c
-index e4ad72b..6525ade 100644
---- a/library.c
-+++ b/library.c
-@@ -1560,6 +1560,11 @@ PHPAPI void redis_free_socket(RedisSock *redis_sock)
- ZVAL_STRINGL(z_copy, "Array", 5, 1);
- break;
-
-+ case IS_NULL:
-+ MAKE_STD_ZVAL(z_copy);
-+ ZVAL_STRINGL(z_copy, "", 0, 1);
-+ break;
-+
- default: /* copy */
- MAKE_STD_ZVAL(z_copy);
- *z_copy = *z;
---
-1.8.5.5
-
-
-From 8805b133b9b1d0bf18a59ef97d95ca8c3a1ab9a7 Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Thu, 20 Mar 2014 13:49:26 +0100
-Subject: [PATCH 3/7] redis.c:7022:13: warning: 'keyword' may be used
- uninitialized in this function (mostly to make gcc happy)
-
----
- redis.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/redis.c b/redis.c
-index 4788480..c17bab1 100644
---- a/redis.c
-+++ b/redis.c
-@@ -7014,6 +7014,7 @@ PHPAPI void generic_unsubscribe_cmd(INTERNAL_FUNCTION_PARAMETERS, char *unsub_cm
- keyword = "HSCAN";
- break;
- case TYPE_ZSCAN:
-+ default:
- keyword = "ZSCAN";
- break;
- }
---
-1.8.5.5
-
-
-From 7634db4283409d1fc113596d00a12e531d05c13f Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Thu, 20 Mar 2014 13:54:53 +0100
-Subject: [PATCH 4/7] Fix: library.c:743:78: warning: unused variable 'p2'
- (PLEASE CHECK)
-
----
- library.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/library.c b/library.c
-index 6525ade..680debd 100644
---- a/library.c
-+++ b/library.c
-@@ -774,8 +774,8 @@ PHPAPI void redis_client_list_reply(INTERNAL_FUNCTION_PARAMETERS, RedisSock *red
-
- // Treat numbers as numbers, strings as strings
- is_numeric = 1;
-- for(p2 = value; *p; ++p) {
-- if(*p < '0' || *p > '9') {
-+ for(p2 = value; *p2; ++p2) {
-+ if(*p2 < '0' || *p2 > '9') {
- is_numeric = 0;
- break;
- }
---
-1.8.5.5
-
-
-From 47ddcf75fd3582d50937bf90750b67531db5d5c8 Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Thu, 20 Mar 2014 13:56:11 +0100
-Subject: [PATCH 5/7] Fix ibrary.c:1541:9: warning: unused variable 'sz' +
- 'val8'
-
----
- library.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/library.c b/library.c
-index 680debd..f02f559 100644
---- a/library.c
-+++ b/library.c
-@@ -1538,8 +1538,10 @@ PHPAPI void redis_free_socket(RedisSock *redis_sock)
- #endif
- smart_str sstr = {0};
- zval *z_copy;
-+#ifdef HAVE_REDIS_IGBINARY
- size_t sz;
- uint8_t *val8;
-+#endif
-
- switch(redis_sock->serializer) {
- case REDIS_SERIALIZER_NONE:
---
-1.8.5.5
-
-
-From d74b0d27f347d6fc77c8310259f8462890d38f9b Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Thu, 20 Mar 2014 13:56:49 +0100
-Subject: [PATCH 6/7] Fix warning: 'klen' may be used uninitialized in this
- function
-
----
- library.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/library.c b/library.c
-index f02f559..57d413e 100644
---- a/library.c
-+++ b/library.c
-@@ -743,7 +743,7 @@ PHPAPI void redis_client_list_reply(INTERNAL_FUNCTION_PARAMETERS, RedisSock *red
- char *p = resp, *lpos = resp, *kpos = NULL, *vpos = NULL, *p2, *key, *value;
-
- // Key length, done flag
-- int klen, done = 0, is_numeric;
-+ int klen = 0, done = 0, is_numeric;
-
- // While we've got more to parse
- while(!done) {
---
-1.8.5.5
-
-
-From b9a16b5ad5d8c80eac53f530f37e89761ec2c720 Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Thu, 20 Mar 2014 15:06:40 +0100
-Subject: [PATCH 7/7] revert previous, and better fix for memory corruption
- (STR_FREE available since 5.0)
-
----
- library.c | 5 -----
- redis.c | 47 ++++++++++++++++++++++++-----------------------
- 2 files changed, 24 insertions(+), 28 deletions(-)
-
-diff --git a/library.c b/library.c
-index 57d413e..b0f15db 100644
---- a/library.c
-+++ b/library.c
-@@ -1562,11 +1562,6 @@ PHPAPI void redis_free_socket(RedisSock *redis_sock)
- ZVAL_STRINGL(z_copy, "Array", 5, 1);
- break;
-
-- case IS_NULL:
-- MAKE_STD_ZVAL(z_copy);
-- ZVAL_STRINGL(z_copy, "", 0, 1);
-- break;
--
- default: /* copy */
- MAKE_STD_ZVAL(z_copy);
- *z_copy = *z;
-diff --git a/redis.c b/redis.c
-index c17bab1..8c12657 100644
---- a/redis.c
-+++ b/redis.c
-@@ -990,7 +990,7 @@ PHPAPI int redis_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) {
-
- /* Free our key or value if we prefixed/serialized */
- if(key_free) efree(key);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
-
- /* Kick off the command */
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -1023,7 +1023,7 @@ PHPAPI void redis_generic_setex(INTERNAL_FUNCTION_PARAMETERS, char *keyword) {
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, keyword, "sls", key, key_len, expire, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -1072,7 +1072,7 @@ PHPAPI void redis_generic_setex(INTERNAL_FUNCTION_PARAMETERS, char *keyword) {
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, "SETNX", "ss", key, key_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -1110,7 +1110,7 @@ PHPAPI void redis_generic_setex(INTERNAL_FUNCTION_PARAMETERS, char *keyword) {
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, "GETSET", "ss", key, key_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -1928,7 +1928,7 @@ PHPAPI void redis_unwatch_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redi
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, keyword, "ss", key, key_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -2004,9 +2004,9 @@ PHPAPI void redis_unwatch_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redi
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- pivot_free = redis_serialize(redis_sock, z_pivot, &pivot, &pivot_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, "LINSERT", "ssss", key, key_len, position, position_len, pivot, pivot_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-- if(pivot_free) efree(pivot);
-+ if(pivot_free) STR_FREE(pivot);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
- IF_ATOMIC() {
-@@ -2178,7 +2178,7 @@ PHPAPI void redis_unwatch_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redi
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, "LREM", "sds", key, key_len, count, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -2382,7 +2382,7 @@ PHPAPI void redis_unwatch_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redi
- src_free = redis_key_prefix(redis_sock, &src, &src_len TSRMLS_CC);
- dst_free = redis_key_prefix(redis_sock, &dst, &dst_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, "SMOVE", "sss", src, src_len, dst, dst_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(src_free) efree(src);
- if(dst_free) efree(dst);
-
-@@ -2488,7 +2488,7 @@ PHPAPI void redis_unwatch_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redi
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, "SISMEMBER", "ss", key, key_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -2716,7 +2716,7 @@ PHPAPI int generic_multiple_args_cmd(INTERNAL_FUNCTION_PARAMETERS, char *keyword
- /* cleanup prefixed keys. */
- for(i = 0; i < real_argc + (has_timeout?-1:0); ++i) {
- if(keys_to_free[i])
-- efree(keys[i]);
-+ STR_FREE(keys[i]);
- }
- if(single_array && has_timeout) { /* cleanup string created to contain timeout value */
- efree(keys[real_argc-1]);
-@@ -3362,7 +3362,7 @@ PHPAPI void generic_expire_cmd(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, "LSET", "sds", key, key_len, index, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -3782,7 +3782,7 @@ PHPAPI void generic_ttl(INTERNAL_FUNCTION_PARAMETERS, char *keyword) {
- memcpy(p, _NL, 2); p += 2;
- }
-
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
- }
- }
-@@ -3964,7 +3964,7 @@ PHPAPI void common_rpoplpush(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock
- smart_str_appendl(&buf, val, val_len);
- smart_str_appendl(&buf, _NL, sizeof(_NL) - 1);
-
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- }
-
- /* end string */
-@@ -4361,7 +4361,7 @@ PHPAPI void common_rpoplpush(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, "ZSCORE", "ss", key, key_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -4394,7 +4394,7 @@ PHPAPI void generic_rank_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, keyword, "ss", key, key_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -4444,7 +4444,7 @@ PHPAPI void generic_incrby_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, i
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, keyword, "sfs", key, key_len, add, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -4659,7 +4659,7 @@ PHPAPI void generic_z_command(INTERNAL_FUNCTION_PARAMETERS, char *command, int c
- val_free = redis_serialize(redis_sock, z_value, &val, &val_len TSRMLS_CC);
- key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
- cmd_len = redis_cmd_format_static(&cmd, kw, "sss", key, key_len, member, member_len, val, val_len);
-- if(val_free) efree(val);
-+ if(val_free) STR_FREE(val);
- if(key_free) efree(key);
-
- REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
-@@ -5179,7 +5179,7 @@ PHPAPI void array_zip_values_and_scores(RedisSock *redis_sock, zval *z_tab, int
- redis_cmd_append_sstr(&set_cmds, hkey, hkey_len - 1);
- redis_cmd_append_sstr(&set_cmds, hval, hval_len);
-
-- if(hval_free) efree(hval);
-+ if(hval_free) STR_FREE(hval);
- }
-
- // Now construct the entire command
-@@ -6685,7 +6685,7 @@ PHPAPI void generic_unsubscribe_cmd(INTERNAL_FUNCTION_PARAMETERS, char *unsub_cm
- RedisSock *redis_sock;
- zval *z_val;
- char *val;
-- int val_free, val_len;
-+ int val_len;
-
- // Parse arguments
- if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oz",
-@@ -6700,10 +6700,11 @@ PHPAPI void generic_unsubscribe_cmd(INTERNAL_FUNCTION_PARAMETERS, char *unsub_cm
- }
-
- // Serialize, which will return a value even if no serializer is set
-- val_free = redis_serialize(redis_sock, z_val, &val, &val_len TSRMLS_CC);
-+ redis_serialize(redis_sock, z_val, &val, &val_len TSRMLS_CC);
-
-- // Return serialized value. Tell PHP to make a copy if redis_serialize didn't.
-- RETURN_STRINGL(val, val_len, !val_free);
-+ // Return serialized value. Tell PHP to make a copy as some can be interned.
-+ RETVAL_STRINGL(val, val_len, 1);
-+ STR_FREE(val);
- }
-
- /*
---
-1.8.5.5
-