@@ -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