diff options
-rw-r--r-- | redis_array.c | 44 | ||||
-rw-r--r-- | redis_array_impl.c | 47 | ||||
-rw-r--r-- | redis_commands.c | 94 |
3 files changed, 95 insertions, 90 deletions
diff --git a/redis_array.c b/redis_array.c index b349253b..cda66305 100644 --- a/redis_array.c +++ b/redis_array.c @@ -321,7 +321,7 @@ ra_forward_call(INTERNAL_FUNCTION_PARAMETERS, RedisArray *ra, const char *cmd, i int key_len; int i; zval *redis_inst; - zval z_fun; + zval z_fun, **z_callargs; HashPosition pointer; HashTable *h_args; @@ -357,19 +357,19 @@ ra_forward_call(INTERNAL_FUNCTION_PARAMETERS, RedisArray *ra, const char *cmd, i /* pass call through */ ZVAL_STRING(&z_fun, cmd); /* method name */ - zval z_callargs[argc]; + z_callargs = emalloc(argc * sizeof(zval*)); /* copy args to array */ for (i = 0, zend_hash_internal_pointer_reset_ex(h_args, &pointer); (zp_tmp = zend_hash_get_current_data_ex(h_args, &pointer)) != NULL; ++i, zend_hash_move_forward_ex(h_args, &pointer)) { - ZVAL_DUP(&z_callargs[i], zp_tmp); + ZVAL_DUP(z_callargs[i], zp_tmp); } /* multi/exec */ if(ra->z_multi_exec) { - call_user_function(&redis_ce->function_table, ra->z_multi_exec, &z_fun, return_value, argc, z_callargs TSRMLS_CC); + call_user_function(&redis_ce->function_table, ra->z_multi_exec, &z_fun, return_value, argc, *z_callargs TSRMLS_CC); efree(z_callargs); RETURN_ZVAL(getThis(), 1, 0); } @@ -377,7 +377,7 @@ ra_forward_call(INTERNAL_FUNCTION_PARAMETERS, RedisArray *ra, const char *cmd, i /* CALL! */ if(ra->index && b_write_cmd) { /* call using discarded temp value and extract exec results after. */ - call_user_function(&redis_ce->function_table, redis_inst, &z_fun, &z_tmp, argc, z_callargs TSRMLS_CC); + call_user_function(&redis_ce->function_table, redis_inst, &z_fun, &z_tmp, argc, *z_callargs TSRMLS_CC); zval_dtor(&z_tmp); /* add keys to index. */ @@ -386,7 +386,7 @@ ra_forward_call(INTERNAL_FUNCTION_PARAMETERS, RedisArray *ra, const char *cmd, i /* call EXEC */ ra_index_exec(redis_inst, return_value, 0 TSRMLS_CC); } else { /* call directly through. */ - call_user_function(&redis_ce->function_table, redis_inst, &z_fun, return_value, argc, z_callargs TSRMLS_CC); + call_user_function(&redis_ce->function_table, redis_inst, &z_fun, return_value, argc, *z_callargs TSRMLS_CC); /* check if we have an error. */ if(RA_CALL_FAILED(return_value,cmd) && ra->prev && !b_write_cmd) { /* there was an error reading, try with prev ring. */ @@ -811,6 +811,7 @@ PHP_METHOD(RedisArray, mget) int *pos, argc, *argc_each; HashTable *h_keys; HashPosition pointer; + zval **redis_instances, **argv; /* Multi/exec support */ HANDLE_MULTI_EXEC("MGET"); @@ -832,7 +833,8 @@ PHP_METHOD(RedisArray, mget) argc = zend_hash_num_elements(h_keys); pos = emalloc(argc * sizeof(int)); - zval argv[argc], redis_instances[argc]; + redis_instances = ecalloc(argc, sizeof(zval*)); + argv = emalloc(argc * sizeof(zval*)); argc_each = emalloc(ra->count * sizeof(int)); memset(argc_each, 0, ra->count * sizeof(int)); @@ -866,10 +868,10 @@ PHP_METHOD(RedisArray, mget) } /* Find our node */ - redis_instances[i] = *ra_find_node(ra, key_lookup, key_len, &pos[i] TSRMLS_CC); + redis_instances[i] = ra_find_node(ra, key_lookup, key_len, &pos[i] TSRMLS_CC); argc_each[pos[i]]++; /* count number of keys per node */ - argv[i] = *data; + argv[i] = data; } /* prepare return value */ @@ -887,7 +889,7 @@ PHP_METHOD(RedisArray, mget) for(i = 0; i < argc; ++i) { if(pos[i] != n) continue; - ZVAL_DUP(&z_tmp, &argv[i]); + ZVAL_DUP(&z_tmp, argv[i]); add_next_index_zval(&z_argarray, &z_tmp); } @@ -945,7 +947,7 @@ PHP_METHOD(RedisArray, mset) RedisArray *ra; int *pos, argc, *argc_each; HashTable *h_keys; - zval *redis_inst; + zval *redis_inst, **redis_instances, **argv; char *key, **keys, **key_free, kbuf[40]; zend_string *key_zstr; unsigned int key_len, free_idx = 0; @@ -971,7 +973,8 @@ PHP_METHOD(RedisArray, mset) keys = emalloc(argc * sizeof(char*)); key_lens = emalloc(argc * sizeof(int)); - zval argv[argc], redis_instances[argc]; + argv = emalloc(argc * sizeof(zval*)); + redis_instances = ecalloc(argc, sizeof(zval*)); /* Allocate an array holding the indexes of any keys that need freeing */ key_free = emalloc(argc * sizeof(char*)); @@ -1002,9 +1005,9 @@ PHP_METHOD(RedisArray, mset) key = key_zstr->val; } - redis_instances[i] = *ra_find_node(ra, key, (int)key_len, &pos[i] TSRMLS_CC); + redis_instances[i] = ra_find_node(ra, key, (int)key_len, &pos[i] TSRMLS_CC); argc_each[pos[i]]++; /* count number of keys per node */ - argv[i] = *data; + argv[i] = data; keys[i] = key; key_lens[i] = (int)key_len; } @@ -1025,7 +1028,7 @@ PHP_METHOD(RedisArray, mset) if(pos[i] != n) continue; - ZVAL_DUP(&z_tmp, &argv[i]); + ZVAL_DUP(&z_tmp, argv[i]); add_assoc_zval_ex(&z_argarray, keys[i], key_lens[i] + 1, &z_tmp); /* +1 to count the \0 here */ found++; @@ -1081,7 +1084,7 @@ PHP_METHOD(RedisArray, del) int *pos, argc, *argc_each; HashTable *h_keys; HashPosition pointer; - zval *redis_inst; + zval *redis_inst, **redis_instances, **argv;; long total = 0; int free_zkeys = 0; @@ -1122,7 +1125,8 @@ PHP_METHOD(RedisArray, del) argc = zend_hash_num_elements(h_keys); pos = emalloc(argc * sizeof(int)); - zval redis_instances[argc], argv[argc]; + argv = emalloc(argc * sizeof(zval*)); + redis_instances = ecalloc(argc, sizeof(zval*)); argc_each = emalloc(ra->count * sizeof(int)); memset(argc_each, 0, ra->count * sizeof(int)); @@ -1138,9 +1142,9 @@ PHP_METHOD(RedisArray, del) RETURN_FALSE; } - redis_instances[i] = *ra_find_node(ra, Z_STRVAL_P(data), Z_STRLEN_P(data), &pos[i] TSRMLS_CC); + redis_instances[i] = ra_find_node(ra, Z_STRVAL_P(data), Z_STRLEN_P(data), &pos[i] TSRMLS_CC); argc_each[pos[i]]++; /* count number of keys per node */ - argv[i] = *data; + argv[i] = data; } /* calls */ @@ -1154,7 +1158,7 @@ PHP_METHOD(RedisArray, del) for(i = 0; i < argc; ++i) { if(pos[i] != n) continue; - ZVAL_DUP(&z_tmp, &argv[i]); + ZVAL_DUP(&z_tmp, argv[i]); add_next_index_zval(&z_argarray, &z_tmp); found++; diff --git a/redis_array_impl.c b/redis_array_impl.c index a6ff9d5f..d094833a 100644 --- a/redis_array_impl.c +++ b/redis_array_impl.c @@ -493,25 +493,25 @@ static void ra_index_change_keys(const char *cmd, zval *z_keys, zval *z_redis TSRMLS_DC) { int i, argc; - zval z_fun, z_ret; + zval z_fun, z_ret, **z_args; /* alloc */ argc = 1 + zend_hash_num_elements(Z_ARRVAL_P(z_keys)); - zval z_args[argc]; + z_args = emalloc(argc * sizeof(zval*)); /* prepare first parameters */ ZVAL_STRING(&z_fun, cmd); - ZVAL_STRING(&z_args[0], PHPREDIS_INDEX_NAME); + ZVAL_STRING(z_args[0], PHPREDIS_INDEX_NAME); /* prepare keys */ for(i = 0; i < argc - 1; ++i) { zval *zp; zp = zend_hash_index_find(Z_ARRVAL_P(z_keys), i); - ZVAL_DUP(&z_args[i+1], zp); + ZVAL_DUP(z_args[i+1], zp); } /* run cmd */ - call_user_function(&redis_ce->function_table, z_redis, &z_fun, &z_ret, argc, z_args TSRMLS_CC); + call_user_function(&redis_ce->function_table, z_redis, &z_fun, &z_ret, argc, *z_args TSRMLS_CC); /* don't dtor z_ret, since we're returning z_redis */ } @@ -809,7 +809,7 @@ ra_expire_key(const char *key, int key_len, zval *z_to, long ttl TSRMLS_DC) { static zend_bool ra_move_zset(const char *key, int key_len, zval *z_from, zval *z_to, long ttl TSRMLS_DC) { - zval z_fun_zrange, z_fun_zadd, z_ret, z_ret_dest, z_args[4], *z_score_p; + zval z_fun_zrange, z_fun_zadd, z_ret, z_ret_dest, z_args[4], *z_score_p, **z_zadd_args; int count; HashTable *h_zset_vals; zend_string *val; @@ -839,7 +839,7 @@ ra_move_zset(const char *key, int key_len, zval *z_from, zval *z_to, long ttl TS /* allocate argument array for ZADD */ count = zend_hash_num_elements(h_zset_vals); - zval z_zadd_args[ (1 + 2*count) ]; + z_zadd_args = emalloc((1 + 2*count) * sizeof(zval*)); for(i = 1, zend_hash_internal_pointer_reset(h_zset_vals); zend_hash_has_more_elements(h_zset_vals) == SUCCESS; @@ -851,15 +851,15 @@ ra_move_zset(const char *key, int key_len, zval *z_from, zval *z_to, long ttl TS /* add score */ convert_to_double(z_score_p); - ZVAL_DOUBLE(&z_zadd_args[i], Z_DVAL_P(z_score_p)); + ZVAL_DOUBLE(z_zadd_args[i], Z_DVAL_P(z_score_p)); /* add value */ switch (zend_hash_get_current_key_ex(h_zset_vals, &val, &idx, 0)) { case HASH_KEY_IS_STRING: - ZVAL_STRINGL(&z_zadd_args[i+1], val->val, val->len - 1); /* we have to remove 1 because it is an array key. */ + ZVAL_STRINGL(z_zadd_args[i+1], val->val, val->len - 1); /* we have to remove 1 because it is an array key. */ break; case HASH_KEY_IS_LONG: - ZVAL_LONG(&z_zadd_args[i+1], (long)idx); + ZVAL_LONG(z_zadd_args[i+1], (long)idx); break; default: return -1; /* Todo: log error */ @@ -870,15 +870,16 @@ ra_move_zset(const char *key, int key_len, zval *z_from, zval *z_to, long ttl TS /* run ZADD on target */ ZVAL_STRINGL(&z_fun_zadd, "ZADD", 4); - ZVAL_STRINGL(&z_zadd_args[0], key, key_len); - call_user_function(&redis_ce->function_table, z_to, &z_fun_zadd, &z_ret_dest, 1 + 2 * count, z_zadd_args TSRMLS_CC); + ZVAL_STRINGL(z_zadd_args[0], key, key_len); + call_user_function(&redis_ce->function_table, z_to, &z_fun_zadd, &z_ret_dest, 1 + 2 * count, *z_zadd_args TSRMLS_CC); /* Expire if needed */ ra_expire_key(key, key_len, z_to, ttl TSRMLS_CC); /* cleanup */ for(i = 0; i < 1 + 2 * count; ++i) { - zval_dtor(&z_zadd_args[i]); + zval_dtor(z_zadd_args[i]); + efree(&z_zadd_args[i]); } zval_dtor(&z_ret); @@ -962,23 +963,23 @@ ra_move_collection(const char *key, int key_len, zval *z_from, zval *z_to, int list_count, const char **cmd_list, int add_count, const char **cmd_add, long ttl TSRMLS_DC) { - zval z_fun_retrieve, z_fun_sadd, z_ret, *z_data_p; + zval z_fun_retrieve, z_fun_sadd, z_ret, *z_data_p, **z_retrieve_args, **z_sadd_args; int count, i; HashTable *h_set_vals; /* run retrieval command on source */ - zval z_retrieve_args[1 + list_count]; + z_retrieve_args = emalloc((1+list_count) * sizeof(zval*)); ZVAL_STRING(&z_fun_retrieve, cmd_list[0]); /* set the command */ /* set the key */ - ZVAL_STRINGL(&z_retrieve_args[0], key, key_len); + ZVAL_STRINGL(z_retrieve_args[0], key, key_len); /* possibly add some other args if they were provided. */ for(i = 1; i < list_count; ++i) { - ZVAL_STRING(&z_retrieve_args[i], cmd_list[i]); + ZVAL_STRING(z_retrieve_args[i], cmd_list[i]); } - call_user_function(&redis_ce->function_table, z_from, &z_fun_retrieve, &z_ret, list_count, z_retrieve_args TSRMLS_CC); + call_user_function(&redis_ce->function_table, z_from, &z_fun_retrieve, &z_ret, list_count, *z_retrieve_args TSRMLS_CC); if(Z_TYPE(z_ret) != IS_ARRAY) { /* key not found or replaced */ /* TODO: report? */ @@ -988,9 +989,9 @@ ra_move_collection(const char *key, int key_len, zval *z_from, zval *z_to, /* run SADD/RPUSH on target */ h_set_vals = Z_ARRVAL(z_ret); count = zend_hash_num_elements(h_set_vals); - zval z_sadd_args[1 + count]; + z_sadd_args = emalloc((1 + count) * sizeof(zval*)); ZVAL_STRING(&z_fun_sadd, cmd_add[0]); - ZVAL_STRINGL(&z_sadd_args[0], key, key_len); + ZVAL_STRINGL(z_sadd_args[0], key, key_len); for(i = 0, zend_hash_internal_pointer_reset(h_set_vals); zend_hash_has_more_elements(h_set_vals) == SUCCESS; @@ -1001,13 +1002,13 @@ ra_move_collection(const char *key, int key_len, zval *z_from, zval *z_to, } /* add set elements */ - ZVAL_DUP(&z_sadd_args[i+1], z_data_p); + ZVAL_DUP(z_sadd_args[i+1], z_data_p); } /* Clean up our input return value */ zval_dtor(&z_ret); - call_user_function(&redis_ce->function_table, z_to, &z_fun_sadd, &z_ret, count+1, z_sadd_args TSRMLS_CC); + call_user_function(&redis_ce->function_table, z_to, &z_fun_sadd, &z_ret, count+1, *z_sadd_args TSRMLS_CC); /* Expire if needed */ ra_expire_key(key, key_len, z_to, ttl TSRMLS_CC); @@ -1015,7 +1016,7 @@ ra_move_collection(const char *key, int key_len, zval *z_from, zval *z_to, /* cleanup */ for(i = 0; i < count; ++i) { - zval_dtor(&z_sadd_args[i + 1]); + zval_dtor(z_sadd_args[i + 1]); } efree(z_sadd_args); diff --git a/redis_commands.c b/redis_commands.c index 7d1d49db..a82df371 100644 --- a/redis_commands.c +++ b/redis_commands.c @@ -109,7 +109,7 @@ int redis_key_long_val_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, void **ctx) { char *key = NULL, *val=NULL; - size_t key_len; + size_t key_len; int val_len, val_free, key_free; long expire; zval *z_val; @@ -122,7 +122,7 @@ int redis_key_long_val_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, // Serialize value, prefix key val_free = redis_serialize(redis_sock, z_val, &val, &val_len TSRMLS_CC); - //TODO Sean-Der + //TODO Sean-Der key_free = redis_key_prefix(redis_sock, &key, (int *) &key_len); // Construct our command @@ -144,9 +144,9 @@ int redis_key_long_str_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, void **ctx) { char *key, *val; - size_t key_len, val_len; - int key_free; - long lval; + size_t key_len, val_len; + int key_free; + long lval; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sls", &key, &key_len, &lval, &val, &val_len)==FAILURE) @@ -176,9 +176,9 @@ int redis_kv_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, void **ctx) { char *key, *val; - size_t key_len; - int val_len, key_free, val_free; - zval *z_val; + size_t key_len; + int val_len, key_free, val_free; + zval *z_val; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz", &key, &key_len, &z_val)==FAILURE) @@ -235,8 +235,8 @@ int redis_key_str_str_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, void **ctx) { char *key, *val1, *val2; - size_t key_len, val1_len, val2_len; - int key_free; + size_t key_len, val1_len, val2_len; + int key_free; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss", &key, &key_len, &val1, &val1_len, &val2, &val2_len)==FAILURE) @@ -313,7 +313,7 @@ int redis_key_long_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key; size_t key_len; - int key_free; + int key_free; long lval; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl", &key, &key_len, @@ -348,7 +348,7 @@ int redis_key_long_long_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key; size_t key_len; - int key_free; + int key_free; long val1, val2; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sll", &key, &key_len, @@ -379,7 +379,7 @@ int redis_key_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key; size_t key_len; - int key_free; + int key_free; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &key, &key_len) ==FAILURE) @@ -407,9 +407,9 @@ int redis_key_dbl_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, void **ctx) { char *key; - size_t key_len; - int key_free; - double val; + size_t key_len; + int key_free; + double val; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sd", &key, &key_len, &val)==FAILURE) @@ -476,7 +476,7 @@ int redis_zrange_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key; size_t key_len; - int key_free; + int key_free; long start, end; zend_bool ws=0; @@ -591,7 +591,7 @@ int redis_zinter_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, HashPosition ptr; smart_string cmdstr = {0}; int argc = 2, keys_count; - size_t agg_op_len, key_len; + size_t agg_op_len, key_len; // Parse args if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sa|a!s", &key, @@ -861,7 +861,7 @@ int redis_zrangebylex_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key, *min, *max; size_t key_len, min_len, max_len; - int key_free; + int key_free; long offset, count; int argc = ZEND_NUM_ARGS(); @@ -916,7 +916,7 @@ int redis_gen_zlex_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key, *min, *max; size_t key_len, min_len, max_len; - int key_free; + int key_free; /* Parse args */ if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss", &key, &key_len, @@ -1018,7 +1018,7 @@ int redis_key_arr_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, HashPosition pos; smart_string cmdstr = {0}; int val_len, key_free, val_free, argc = 1; - size_t key_len; + size_t key_len; char *key, *val; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sa", &key, &key_len, @@ -1195,7 +1195,7 @@ int redis_set_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, zval *z_value, *z_opts=NULL; char *key = NULL, *val = NULL, *exp_type = NULL, *set_type = NULL; int val_len, key_free, val_free; - size_t key_len; + size_t key_len; long expire = -1; // Make sure the function is being called correctly @@ -1353,7 +1353,7 @@ redis_atomic_increment(INTERNAL_FUNCTION_PARAMETERS, int type, { char *key; int key_free; - size_t key_len; + size_t key_len; long val = 1; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &key, &key_len, @@ -1413,7 +1413,7 @@ int redis_hincrby_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key, *mem; size_t key_len, mem_len; - int key_free; + int key_free; long byval; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssl", &key, &key_len, @@ -1444,7 +1444,7 @@ int redis_hincrbyfloat_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key, *mem; size_t key_len, mem_len; - int key_free; + int key_free; double byval; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssd", &key, &key_len, @@ -1475,9 +1475,9 @@ int redis_hmget_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char **cmd, int *cmd_len, short *slot, void **ctx) { char *key; - zval *z_arr, *z_mem; + zval *z_arr, *z_mem, **z_mems; int i, count, valid=0, key_free; - size_t key_len; + size_t key_len; HashTable *ht_arr; HashPosition ptr; smart_string cmdstr = {0}; @@ -1501,7 +1501,7 @@ int redis_hmget_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, key_free = redis_key_prefix(redis_sock, &key, (int *) &key_len); // Allocate memory for mems+1 so we can have a sentinel - zval z_mems[count + 1]; + z_mems = ecalloc(count+1, sizeof(zval*)); // Iterate over our member array for(zend_hash_internal_pointer_reset_ex(ht_arr, &ptr); @@ -1513,8 +1513,8 @@ int redis_hmget_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, || Z_TYPE_P(z_mem) == IS_LONG) { // Copy into our member array - ZVAL_DUP(&z_mems[valid], z_mem); - convert_to_string(&z_mems[valid]); + ZVAL_DUP(z_mems[valid], z_mem); + convert_to_string(z_mems[valid]); // Increment the member count to actually send valid++; @@ -1530,7 +1530,7 @@ int redis_hmget_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, // Sentinel so we can free this even if it's used and then we discard // the transaction manually or there is a transaction failure - ZVAL_UNDEF(&z_mems[valid]); + z_mems[valid] = NULL; // Start command construction redis_cmd_init_sstr(&cmdstr, valid+1, "HMGET", sizeof("HMGET")-1); @@ -1538,7 +1538,7 @@ int redis_hmget_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, // Iterate over members, appending as arguments for(i=0;i<valid;i++) { - redis_cmd_append_sstr(&cmdstr, Z_STRVAL(z_mems[i]), Z_STRLEN(z_mems[i])); + redis_cmd_append_sstr(&cmdstr, Z_STRVAL_P(z_mems[i]), Z_STRLEN_P(z_mems[i])); } // Set our slot @@ -1562,7 +1562,7 @@ int redis_hmset_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key; int key_free, count, ktype; - size_t key_len; + size_t key_len; unsigned long idx; zval *z_arr; HashTable *ht_vals; @@ -1647,7 +1647,7 @@ int redis_bitpos_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { char *key; int argc; - size_t key_len; + size_t key_len; long bit, start, end; argc = ZEND_NUM_ARGS(); @@ -1749,7 +1749,7 @@ int redis_bitcount_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char **cmd, int *cmd_len, short *slot, void **ctx) { char *key; - size_t key_len; + size_t key_len; int key_free; long start = 0, end = -1; @@ -2039,7 +2039,7 @@ int redis_setbit_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char **cmd, int *cmd_len, short *slot, void **ctx) { char *key; - size_t key_len; + size_t key_len; int key_free; long offset; zend_bool val; @@ -2073,7 +2073,7 @@ int redis_linsert_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char **cmd, int *cmd_len, short *slot, void **ctx) { char *key, *pivot, *pos, *val; - size_t key_len, pos_len; + size_t key_len, pos_len; int pivot_len, val_len; int key_free, pivot_free, val_free; zval *z_val, *z_pivot; @@ -2118,7 +2118,7 @@ int redis_lrem_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char **cmd, int *cmd_len, short *slot, void **ctx) { char *key, *val; - size_t key_len; + size_t key_len; int val_len, key_free, val_free; long count = 0; zval *z_val; @@ -2152,7 +2152,7 @@ int redis_smove_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char **cmd, int *cmd_len, short *slot, void **ctx) { char *src, *dst, *val; - size_t src_len, dst_len; + size_t src_len, dst_len; int val_len; int val_free, src_free, dst_free; zval *z_val; @@ -2200,7 +2200,7 @@ static int gen_hset_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char *kw, char **cmd, int *cmd_len, short *slot) { char *key, *mem, *val; - size_t mem_len, key_len; + size_t mem_len, key_len; int val_len; int val_free, key_free; zval *z_val; @@ -2252,7 +2252,7 @@ int redis_srandmember_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, short *have_count) { char *key; - size_t key_len; + size_t key_len; int key_free; long count; @@ -2291,7 +2291,7 @@ int redis_zincrby_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char **cmd, int *cmd_len, short *slot, void **ctx) { char *key, *mem; - size_t key_len; + size_t key_len; int mem_len; int key_free, mem_free; double incrby; @@ -2326,7 +2326,7 @@ int redis_sort_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, { zval *z_opts=NULL, *z_ele, z_argv; char *key; - size_t key_len; + size_t key_len; HashTable *ht_opts; smart_string cmdstr = {0}; int key_free; @@ -2593,9 +2593,9 @@ int redis_hdel_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, // Iterate through the members we're removing for(i=1;i<argc;i++) { - convert_to_string(&z_args[i]); - redis_cmd_append_sstr(&cmdstr, Z_STRVAL(z_args[i]), Z_STRLEN(z_args[i])); - } + convert_to_string(&z_args[i]); + redis_cmd_append_sstr(&cmdstr, Z_STRVAL(z_args[i]), Z_STRLEN(z_args[i])); + } // Push out values *cmd = cmdstr.c; @@ -2675,7 +2675,7 @@ int redis_object_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, short *slot, void **ctx) { char *key, *subcmd; - size_t key_len, subcmd_len; + size_t key_len, subcmd_len; int key_free; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &subcmd, |