@@ -109,8 +109,7 @@ static void redis_array_free(RedisArray *ra) {
109109 }
110110
111111 /* Delete pur commands */
112- zval_dtor (ra -> z_pure_cmds );
113- efree (ra -> z_pure_cmds );
112+ zval_dtor (& ra -> z_pure_cmds );
114113
115114 /* Free structure itself */
116115 efree (ra );
@@ -383,7 +382,6 @@ ra_forward_call(INTERNAL_FUNCTION_PARAMETERS, RedisArray *ra, const char *cmd, i
383382 /* copy args to array */
384383 i = 0 ;
385384 ZEND_HASH_FOREACH_VAL (h_args , zp_tmp ) {
386- INIT_ZVAL (z_callargs [i ]);
387385 z_callargs [i ] = * zp_tmp ;
388386 i ++ ;
389387 } ZEND_HASH_FOREACH_END ();
@@ -437,7 +435,7 @@ PHP_METHOD(RedisArray, __call)
437435 zval * z_args ;
438436
439437 char * cmd ;
440- int cmd_len ;
438+ size_t cmd_len ;
441439
442440 if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Osa" ,
443441 & object , redis_array_ce , & cmd , & cmd_len , & z_args ) == FAILURE ) {
@@ -834,7 +832,7 @@ PHP_METHOD(RedisArray, select)
834832/* MGET will distribute the call to several nodes and regroup the values. */
835833PHP_METHOD (RedisArray , mget )
836834{
837- zval * object , * z_keys , z_fun , * z_argarray , * data , * z_ret , * z_cur , * z_tmp_array , * z_tmp ;
835+ zval * object , * z_keys , z_fun , z_argarray , * data , z_ret , * z_cur , z_tmp_array , * z_tmp ;
838836 int i , j , n ;
839837 RedisArray * ra ;
840838 int * pos , argc , * argc_each ;
@@ -899,79 +897,81 @@ PHP_METHOD(RedisArray, mget)
899897 argv [i ++ ] = data ;
900898 } ZEND_HASH_FOREACH_END ();
901899
902- /* prepare return value */
903- array_init (return_value );
904- MAKE_STD_ZVAL (z_tmp_array );
905- array_init (z_tmp_array );
906-
900+ array_init (& z_tmp_array );
907901 /* calls */
908902 for (n = 0 ; n < ra -> count ; ++ n ) { /* for each node */
909903 /* We don't even need to make a call to this node if no keys go there */
910904 if (!argc_each [n ]) continue ;
911905
912906 /* copy args for MGET call on node. */
913- MAKE_STD_ZVAL (z_argarray );
914- array_init (z_argarray );
907+ array_init (& z_argarray );
915908
916909 for (i = 0 ; i < argc ; ++ i ) {
917910 if (pos [i ] != n ) continue ;
918911
912+ #if (PHP_MAJOR_VERSION < 7 )
919913 MAKE_STD_ZVAL (z_tmp );
920- * z_tmp = * argv [i ];
921- zval_copy_ctor (z_tmp );
922- INIT_PZVAL (z_tmp );
923- add_next_index_zval (z_argarray , z_tmp );
914+ #else
915+ zval zv ;
916+ z_tmp = & zv ;
917+ #endif
918+ ZVAL_ZVAL (z_tmp , argv [i ], 1 , 0 );
919+ add_next_index_zval (& z_argarray , z_tmp );
924920 }
925921
926922 /* call MGET on the node */
927- MAKE_STD_ZVAL (z_ret );
928- call_user_function (& redis_ce -> function_table , & ra -> redis [n ], & z_fun , z_ret , 1 , z_argarray );
923+ call_user_function (& redis_ce -> function_table , & ra -> redis [n ], & z_fun , & z_ret , 1 , & z_argarray );
929924
930925 /* cleanup args array */
931- zval_ptr_dtor (& z_argarray );
926+ zval_dtor (& z_argarray );
927+
928+ /* Error out if we didn't get a proper response */
929+ if (Z_TYPE (z_ret ) != IS_ARRAY ) {
930+ /* cleanup */
931+ zval_dtor (& z_ret );
932+ zval_dtor (& z_tmp_array );
933+ zval_dtor (& z_fun );
934+ efree (pos );
935+ efree (argc_each );
936+
937+ /* failure */
938+ RETURN_FALSE ;
939+ }
932940
933941 for (i = 0 , j = 0 ; i < argc ; ++ i ) {
934- /* Error out if we didn't get a proper response */
935- if (Z_TYPE_P (z_ret ) != IS_ARRAY ) {
936- /* cleanup */
937- zval_dtor (z_ret );
938- efree (z_ret );
939- zval_ptr_dtor (& z_tmp_array );
940- zval_dtor (& z_fun );
941- efree (pos );
942- efree (argc_each );
943-
944- /* failure */
945- RETURN_FALSE ;
946- }
947-
948942 if (pos [i ] != n ) continue ;
949943
950- z_cur = zend_hash_index_find (Z_ARRVAL_P (z_ret ), j ++ );
944+ z_cur = zend_hash_index_find (Z_ARRVAL (z_ret ), j ++ );
951945
946+ #if (PHP_MAJOR_VERSION < 7 )
952947 MAKE_STD_ZVAL (z_tmp );
953- * z_tmp = * z_cur ;
954- zval_copy_ctor (z_tmp );
955- INIT_PZVAL (z_tmp );
956- add_index_zval (z_tmp_array , i , z_tmp );
948+ #else
949+ zval zv ;
950+ z_tmp = & zv ;
951+ #endif
952+ ZVAL_ZVAL (z_tmp , z_cur , 1 , 0 );
953+ add_index_zval (& z_tmp_array , i , z_tmp );
957954 }
958- zval_dtor (z_ret );
959- efree (z_ret );
955+ zval_dtor (& z_ret );
960956 }
961957
958+ array_init (return_value );
962959 /* copy temp array in the right order to return_value */
963960 for (i = 0 ; i < argc ; ++ i ) {
964- z_cur = zend_hash_index_find (Z_ARRVAL_P (z_tmp_array ), i );
961+ z_cur = zend_hash_index_find (Z_ARRVAL (z_tmp_array ), i );
965962
963+ #if (PHP_MAJOR_VERSION < 7 )
966964 MAKE_STD_ZVAL (z_tmp );
967- * z_tmp = * z_cur ;
968- zval_copy_ctor (z_tmp );
969- INIT_PZVAL (z_tmp );
965+ #else
966+ zval zv ;
967+ z_tmp = & zv ;
968+ #endif
969+ ZVAL_ZVAL (z_tmp , z_cur , 1 , 0 );
970970 add_next_index_zval (return_value , z_tmp );
971971 }
972972
973973 /* cleanup */
974- zval_ptr_dtor (& z_tmp_array );
974+ zval_dtor (& z_tmp_array );
975975 zval_dtor (& z_fun );
976976 efree (argv );
977977 efree (pos );
@@ -982,12 +982,11 @@ PHP_METHOD(RedisArray, mget)
982982/* MSET will distribute the call to several nodes and regroup the values. */
983983PHP_METHOD (RedisArray , mset )
984984{
985- zval * object , * z_keys , z_fun , * z_argarray , * data , z_ret ;
985+ zval * object , * z_keys , z_fun , z_argarray , * data , z_ret , * * argv ;
986986 int i , n ;
987987 RedisArray * ra ;
988988 int * pos , argc , * argc_each ;
989989 HashTable * h_keys ;
990- zval * redis_inst , * * argv ;
991990 char * key , * * keys , kbuf [40 ];
992991 int key_len , * key_lens ;
993992 zend_string * zkey ;
@@ -1024,7 +1023,7 @@ PHP_METHOD(RedisArray, mset)
10241023 key_len = zkey -> len ;
10251024 key = zkey -> val ;
10261025 } else {
1027- key_len = snprintf (kbuf , sizeof (kbuf ), "%ld " , ( long ) idx );
1026+ key_len = snprintf (kbuf , sizeof (kbuf ), "%lu " , idx );
10281027 key = kbuf ;
10291028 }
10301029
@@ -1044,48 +1043,44 @@ PHP_METHOD(RedisArray, mset)
10441043 int found = 0 ;
10451044
10461045 /* copy args */
1047- MAKE_STD_ZVAL (z_argarray );
1048- array_init (z_argarray );
1046+ array_init (& z_argarray );
10491047 for (i = 0 ; i < argc ; ++ i ) {
1050- zval * z_tmp ;
1051-
10521048 if (pos [i ] != n ) continue ;
1053-
1054- ALLOC_ZVAL (z_tmp );
1055- * z_tmp = * argv [i ];
1056- zval_copy_ctor (z_tmp );
1057- INIT_PZVAL (z_tmp );
1058-
1059- add_assoc_zval_ex (z_argarray , keys [i ], key_lens [i ], z_tmp );
1049+ #if (PHP_MAJOR_VERSION < 7 )
1050+ zval * z_tmp ;
1051+ MAKE_STD_ZVAL (z_tmp );
1052+ #else
1053+ zval zv , * z_tmp = & zv ;
1054+ #endif
1055+ ZVAL_ZVAL (z_tmp , argv [i ], 1 , 0 );
1056+ add_assoc_zval_ex (& z_argarray , keys [i ], key_lens [i ], z_tmp );
10601057 found ++ ;
10611058 }
10621059
10631060 if (!found )
10641061 {
1065- zval_dtor (z_argarray );
1066- efree (z_argarray );
1062+ zval_dtor (& z_argarray );
10671063 continue ; /* don't run empty MSETs */
10681064 }
10691065
10701066 /* prepare call */
10711067 ZVAL_STRINGL (& z_fun , "MSET" , 4 );
1072- redis_inst = & ra -> redis [n ];
10731068 if (ra -> index ) { /* add MULTI */
1074- ra_index_multi (redis_inst , MULTI TSRMLS_CC );
1069+ ra_index_multi (& ra -> redis [ n ] , MULTI TSRMLS_CC );
10751070 }
10761071
10771072 /* call */
1078- call_user_function (& redis_ce -> function_table , redis_inst , & z_fun , & z_ret , 1 , z_argarray );
1073+ call_user_function (& redis_ce -> function_table , & ra -> redis [ n ] , & z_fun , & z_ret , 1 , & z_argarray );
10791074
10801075 if (ra -> index ) {
1081- ra_index_keys (z_argarray , redis_inst TSRMLS_CC ); /* use SADD to add keys to node index */
1082- ra_index_exec (redis_inst , NULL , 0 TSRMLS_CC ); /* run EXEC */
1076+ ra_index_keys (& z_argarray , & ra -> redis [ n ] TSRMLS_CC ); /* use SADD to add keys to node index */
1077+ ra_index_exec (& ra -> redis [ n ] , NULL , 0 TSRMLS_CC ); /* run EXEC */
10831078 }
10841079
10851080 zval_dtor (& z_fun );
10861081 zval_dtor (& z_ret );
10871082
1088- zval_ptr_dtor (& z_argarray );
1083+ zval_dtor (& z_argarray );
10891084 }
10901085
10911086 /* Free any keys that we needed to allocate memory for, because they weren't strings */
0 commit comments