@@ -990,7 +990,7 @@ PHP_METHOD(Redis, set) {
990990
991991    /* Free our key or value if we prefixed/serialized */ 
992992    if (key_free ) efree (key );
993-     if (val_free ) efree (val );
993+     if (val_free ) STR_FREE (val );
994994
995995    /* Kick off the command */ 
996996    REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -1023,7 +1023,7 @@ PHPAPI void redis_generic_setex(INTERNAL_FUNCTION_PARAMETERS, char *keyword) {
10231023    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
10241024	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
10251025    cmd_len  =  redis_cmd_format_static (& cmd , keyword , "sls" , key , key_len , expire , val , val_len );
1026-     if (val_free ) efree (val );
1026+     if (val_free ) STR_FREE (val );
10271027    if (key_free ) efree (key );
10281028
10291029	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -1072,7 +1072,7 @@ PHP_METHOD(Redis, setnx)
10721072    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
10731073	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
10741074    cmd_len  =  redis_cmd_format_static (& cmd , "SETNX" , "ss" , key , key_len , val , val_len );
1075-     if (val_free ) efree (val );
1075+     if (val_free ) STR_FREE (val );
10761076    if (key_free ) efree (key );
10771077
10781078    REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -1110,7 +1110,7 @@ PHP_METHOD(Redis, getSet)
11101110    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
11111111	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
11121112    cmd_len  =  redis_cmd_format_static (& cmd , "GETSET" , "ss" , key , key_len , val , val_len );
1113-     if (val_free ) efree (val );
1113+     if (val_free ) STR_FREE (val );
11141114    if (key_free ) efree (key );
11151115
11161116	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -1928,7 +1928,7 @@ generic_push_function(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_l
19281928    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
19291929	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
19301930    cmd_len  =  redis_cmd_format_static (& cmd , keyword , "ss" , key , key_len , val , val_len );
1931-     if (val_free ) efree (val );
1931+     if (val_free ) STR_FREE (val );
19321932    if (key_free ) efree (key );
19331933
19341934	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -2004,9 +2004,9 @@ PHP_METHOD(Redis, lInsert)
20042004        val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
20052005        pivot_free  =  redis_serialize (redis_sock , z_pivot , & pivot , & pivot_len  TSRMLS_CC );
20062006        cmd_len  =  redis_cmd_format_static (& cmd , "LINSERT" , "ssss" , key , key_len , position , position_len , pivot , pivot_len , val , val_len );
2007-         if (val_free ) efree (val );
2007+         if (val_free ) STR_FREE (val );
20082008		if (key_free ) efree (key );
2009-         if (pivot_free ) efree (pivot );
2009+         if (pivot_free ) STR_FREE (pivot );
20102010
20112011		REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len ); 
20122012		IF_ATOMIC () { 
@@ -2178,7 +2178,7 @@ PHP_METHOD(Redis, lRemove)
21782178    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
21792179	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
21802180    cmd_len  =  redis_cmd_format_static (& cmd , "LREM" , "sds" , key , key_len , count , val , val_len );
2181-     if (val_free ) efree (val );
2181+     if (val_free ) STR_FREE (val );
21822182    if (key_free ) efree (key );
21832183
21842184	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -2382,7 +2382,7 @@ PHP_METHOD(Redis, sMove)
23822382	src_free  =  redis_key_prefix (redis_sock , & src , & src_len  TSRMLS_CC );
23832383	dst_free  =  redis_key_prefix (redis_sock , & dst , & dst_len  TSRMLS_CC );
23842384    cmd_len  =  redis_cmd_format_static (& cmd , "SMOVE" , "sss" , src , src_len , dst , dst_len , val , val_len );
2385-     if (val_free ) efree (val );
2385+     if (val_free ) STR_FREE (val );
23862386    if (src_free ) efree (src );
23872387    if (dst_free ) efree (dst );
23882388
@@ -2488,7 +2488,7 @@ PHP_METHOD(Redis, sContains)
24882488    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
24892489	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
24902490    cmd_len  =  redis_cmd_format_static (& cmd , "SISMEMBER" , "ss" , key , key_len , val , val_len );
2491-     if (val_free ) efree (val );
2491+     if (val_free ) STR_FREE (val );
24922492    if (key_free ) efree (key );
24932493
24942494	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -2716,7 +2716,7 @@ PHPAPI int generic_multiple_args_cmd(INTERNAL_FUNCTION_PARAMETERS, char *keyword
27162716	/* cleanup prefixed keys. */ 
27172717	for (i  =  0 ; i  <  real_argc  +  (has_timeout ?-1 :0 ); ++ i ) {
27182718		if (keys_to_free [i ])
2719- 			efree (keys [i ]);
2719+ 			STR_FREE (keys [i ]);
27202720	}
27212721	if (single_array  &&  has_timeout ) { /* cleanup string created to contain timeout value */ 
27222722		efree (keys [real_argc - 1 ]);
@@ -3362,7 +3362,7 @@ PHP_METHOD(Redis, lSet) {
33623362    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
33633363	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
33643364    cmd_len  =  redis_cmd_format_static (& cmd , "LSET" , "sds" , key , key_len , index , val , val_len );
3365-     if (val_free ) efree (val );
3365+     if (val_free ) STR_FREE (val );
33663366    if (key_free ) efree (key );
33673367
33683368	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -3782,7 +3782,7 @@ generic_mset(INTERNAL_FUNCTION_PARAMETERS, char *kw, void (*fun)(INTERNAL_FUNCTI
37823782				memcpy (p , _NL , 2 ); p  +=  2 ;
37833783			}
37843784
3785- 			if (val_free ) efree (val );
3785+ 			if (val_free ) STR_FREE (val );
37863786			if (key_free ) efree (key );
37873787		}
37883788	}
@@ -3964,7 +3964,7 @@ PHP_METHOD(Redis, zAdd) {
39643964		smart_str_appendl (& buf , val , val_len );
39653965		smart_str_appendl (& buf , _NL , sizeof (_NL ) -  1 );
39663966
3967- 		if (val_free ) efree (val );
3967+ 		if (val_free ) STR_FREE (val );
39683968	}
39693969
39703970	/* end string */ 
@@ -4361,7 +4361,7 @@ PHP_METHOD(Redis, zScore)
43614361    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
43624362	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
43634363    cmd_len  =  redis_cmd_format_static (& cmd , "ZSCORE" , "ss" , key , key_len , val , val_len );
4364-     if (val_free ) efree (val );
4364+     if (val_free ) STR_FREE (val );
43654365    if (key_free ) efree (key );
43664366
43674367	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -4394,7 +4394,7 @@ PHPAPI void generic_rank_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int
43944394    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
43954395	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
43964396    cmd_len  =  redis_cmd_format_static (& cmd , keyword , "ss" , key , key_len , val , val_len );
4397-     if (val_free ) efree (val );
4397+     if (val_free ) STR_FREE (val );
43984398    if (key_free ) efree (key );
43994399
44004400	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -4444,7 +4444,7 @@ PHPAPI void generic_incrby_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, i
44444444    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
44454445	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
44464446    cmd_len  =  redis_cmd_format_static (& cmd , keyword , "sfs" , key , key_len , add , val , val_len );
4447-     if (val_free ) efree (val );
4447+     if (val_free ) STR_FREE (val );
44484448    if (key_free ) efree (key );
44494449
44504450	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -4659,7 +4659,7 @@ generic_hset(INTERNAL_FUNCTION_PARAMETERS, char *kw, void (*fun)(INTERNAL_FUNCTI
46594659    val_free  =  redis_serialize (redis_sock , z_value , & val , & val_len  TSRMLS_CC );
46604660	key_free  =  redis_key_prefix (redis_sock , & key , & key_len  TSRMLS_CC );
46614661    cmd_len  =  redis_cmd_format_static (& cmd , kw , "sss" , key , key_len , member , member_len , val , val_len );
4662-     if (val_free ) efree (val );
4662+     if (val_free ) STR_FREE (val );
46634663    if (key_free ) efree (key );
46644664
46654665	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -5179,7 +5179,7 @@ PHP_METHOD(Redis, hMset)
51795179        redis_cmd_append_sstr (& set_cmds , hkey , hkey_len  -  1 );
51805180        redis_cmd_append_sstr (& set_cmds , hval , hval_len );
51815181
5182-         if (hval_free ) efree (hval );
5182+         if (hval_free ) STR_FREE (hval );
51835183    }
51845184
51855185    // Now construct the entire command 
@@ -6685,7 +6685,7 @@ PHP_METHOD(Redis, _serialize) {
66856685    RedisSock  * redis_sock ;
66866686    zval  * z_val ;
66876687    char  * val ;
6688-     int  val_free ,  val_len ;
6688+     int  val_len ;
66896689
66906690    // Parse arguments 
66916691    if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Oz" ,
@@ -6700,10 +6700,11 @@ PHP_METHOD(Redis, _serialize) {
67006700    }
67016701
67026702    // Serialize, which will return a value even if no serializer is set 
6703-     val_free   =   redis_serialize (redis_sock , z_val , & val , & val_len  TSRMLS_CC );
6703+     redis_serialize (redis_sock , z_val , & val , & val_len  TSRMLS_CC );
67046704
6705-     // Return serialized value.  Tell PHP to make a copy if redis_serialize didn't. 
6706-     RETURN_STRINGL (val , val_len , !val_free );
6705+     // Return serialized value.  Tell PHP to make a copy as some can be interned. 
6706+     RETVAL_STRINGL (val , val_len , 1 );
6707+     STR_FREE (val );
67076708}
67086709
67096710/* 
0 commit comments