Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a56ed7f

Browse files
committed
Change type of RedisArray pure_cmds to HashTable
1 parent 89f9c06 commit a56ed7f

3 files changed

Lines changed: 40 additions & 40 deletions

File tree

redis_array.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ redis_array_free(RedisArray *ra)
112112
zval_dtor(&ra->z_dist);
113113

114114
/* Delete pur commands */
115-
zval_dtor(&ra->z_pure_cmds);
115+
zend_hash_destroy(ra->pure_cmds);
116+
FREE_HASHTABLE(ra->pure_cmds);
116117

117118
/* Free structure itself */
118119
efree(ra);
@@ -213,9 +214,7 @@ redis_array_get(zval *id TSRMLS_DC)
213214
#else
214215
obj = (redis_array_object *)((char *)Z_OBJ_P(id) - XtOffsetOf(redis_array_object, std));
215216
#endif
216-
if (obj->ra) {
217-
return obj->ra;
218-
}
217+
return obj->ra;
219218
}
220219
return NULL;
221220
}

redis_array.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ typedef struct RedisArray_ {
4848
zend_bool pconnect; /* should we use pconnect */
4949
zval z_fun; /* key extractor, callable */
5050
zval z_dist; /* key distributor, callable */
51-
zval z_pure_cmds; /* hash table */
51+
HashTable *pure_cmds; /* hash table */
5252
double connect_timeout; /* socket connect timeout */
5353
double read_timeout; /* socket read timeout */
5454

redis_array_impl.c

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -99,40 +99,41 @@ ra_load_hosts(RedisArray *ra, HashTable *hosts, long retry_interval, zend_bool b
9999
void
100100
ra_init_function_table(RedisArray *ra)
101101
{
102-
array_init(&ra->z_pure_cmds);
103-
104-
add_assoc_bool(&ra->z_pure_cmds, "EXISTS", 1);
105-
add_assoc_bool(&ra->z_pure_cmds, "GET", 1);
106-
add_assoc_bool(&ra->z_pure_cmds, "GETBIT", 1);
107-
add_assoc_bool(&ra->z_pure_cmds, "GETRANGE", 1);
108-
add_assoc_bool(&ra->z_pure_cmds, "HEXISTS", 1);
109-
add_assoc_bool(&ra->z_pure_cmds, "HGET", 1);
110-
add_assoc_bool(&ra->z_pure_cmds, "HGETALL", 1);
111-
add_assoc_bool(&ra->z_pure_cmds, "HKEYS", 1);
112-
add_assoc_bool(&ra->z_pure_cmds, "HLEN", 1);
113-
add_assoc_bool(&ra->z_pure_cmds, "HMGET", 1);
114-
add_assoc_bool(&ra->z_pure_cmds, "HVALS", 1);
115-
add_assoc_bool(&ra->z_pure_cmds, "LINDEX", 1);
116-
add_assoc_bool(&ra->z_pure_cmds, "LLEN", 1);
117-
add_assoc_bool(&ra->z_pure_cmds, "LRANGE", 1);
118-
add_assoc_bool(&ra->z_pure_cmds, "OBJECT", 1);
119-
add_assoc_bool(&ra->z_pure_cmds, "SCARD", 1);
120-
add_assoc_bool(&ra->z_pure_cmds, "SDIFF", 1);
121-
add_assoc_bool(&ra->z_pure_cmds, "SINTER", 1);
122-
add_assoc_bool(&ra->z_pure_cmds, "SISMEMBER", 1);
123-
add_assoc_bool(&ra->z_pure_cmds, "SMEMBERS", 1);
124-
add_assoc_bool(&ra->z_pure_cmds, "SRANDMEMBER", 1);
125-
add_assoc_bool(&ra->z_pure_cmds, "STRLEN", 1);
126-
add_assoc_bool(&ra->z_pure_cmds, "SUNION", 1);
127-
add_assoc_bool(&ra->z_pure_cmds, "TYPE", 1);
128-
add_assoc_bool(&ra->z_pure_cmds, "ZCARD", 1);
129-
add_assoc_bool(&ra->z_pure_cmds, "ZCOUNT", 1);
130-
add_assoc_bool(&ra->z_pure_cmds, "ZRANGE", 1);
131-
add_assoc_bool(&ra->z_pure_cmds, "ZRANK", 1);
132-
add_assoc_bool(&ra->z_pure_cmds, "ZREVRANGE", 1);
133-
add_assoc_bool(&ra->z_pure_cmds, "ZREVRANGEBYSCORE", 1);
134-
add_assoc_bool(&ra->z_pure_cmds, "ZREVRANK", 1);
135-
add_assoc_bool(&ra->z_pure_cmds, "ZSCORE", 1);
102+
ALLOC_HASHTABLE(ra->pure_cmds);
103+
zend_hash_init(ra->pure_cmds, 0, NULL, NULL, 0);
104+
105+
zend_hash_str_update_ptr(ra->pure_cmds, "EXISTS", sizeof("EXISTS") - 1, NULL);
106+
zend_hash_str_update_ptr(ra->pure_cmds, "GET", sizeof("GET") - 1, NULL);
107+
zend_hash_str_update_ptr(ra->pure_cmds, "GETBIT", sizeof("GETBIT") - 1, NULL);
108+
zend_hash_str_update_ptr(ra->pure_cmds, "GETRANGE", sizeof("GETRANGE") - 1, NULL);
109+
zend_hash_str_update_ptr(ra->pure_cmds, "HEXISTS", sizeof("HEXISTS") - 1, NULL);
110+
zend_hash_str_update_ptr(ra->pure_cmds, "HGET", sizeof("HGET") - 1, NULL);
111+
zend_hash_str_update_ptr(ra->pure_cmds, "HGETALL", sizeof("HGETALL") - 1, NULL);
112+
zend_hash_str_update_ptr(ra->pure_cmds, "HKEYS", sizeof("HKEYS") - 1, NULL);
113+
zend_hash_str_update_ptr(ra->pure_cmds, "HLEN", sizeof("HLEN") - 1, NULL);
114+
zend_hash_str_update_ptr(ra->pure_cmds, "HMGET", sizeof("HMGET") - 1, NULL);
115+
zend_hash_str_update_ptr(ra->pure_cmds, "HVALS", sizeof("HVALS") - 1, NULL);
116+
zend_hash_str_update_ptr(ra->pure_cmds, "LINDEX", sizeof("LINDEX") - 1, NULL);
117+
zend_hash_str_update_ptr(ra->pure_cmds, "LLEN", sizeof("LLEN") - 1, NULL);
118+
zend_hash_str_update_ptr(ra->pure_cmds, "LRANGE", sizeof("LRANGE") - 1, NULL);
119+
zend_hash_str_update_ptr(ra->pure_cmds, "OBJECT", sizeof("OBJECT") - 1, NULL);
120+
zend_hash_str_update_ptr(ra->pure_cmds, "SCARD", sizeof("SCARD") - 1, NULL);
121+
zend_hash_str_update_ptr(ra->pure_cmds, "SDIFF", sizeof("SDIFF") - 1, NULL);
122+
zend_hash_str_update_ptr(ra->pure_cmds, "SINTER", sizeof("SINTER") - 1, NULL);
123+
zend_hash_str_update_ptr(ra->pure_cmds, "SISMEMBER", sizeof("SISMEMBER") - 1, NULL);
124+
zend_hash_str_update_ptr(ra->pure_cmds, "SMEMBERS", sizeof("SMEMBERS") - 1, NULL);
125+
zend_hash_str_update_ptr(ra->pure_cmds, "SRANDMEMBER", sizeof("SRANDMEMBER") - 1, NULL);
126+
zend_hash_str_update_ptr(ra->pure_cmds, "STRLEN", sizeof("STRLEN") - 1, NULL);
127+
zend_hash_str_update_ptr(ra->pure_cmds, "SUNION", sizeof("SUNION") - 1, NULL);
128+
zend_hash_str_update_ptr(ra->pure_cmds, "TYPE", sizeof("TYPE") - 1, NULL);
129+
zend_hash_str_update_ptr(ra->pure_cmds, "ZCARD", sizeof("ZCARD") - 1, NULL);
130+
zend_hash_str_update_ptr(ra->pure_cmds, "ZCOUNT", sizeof("ZCOUNT") - 1, NULL);
131+
zend_hash_str_update_ptr(ra->pure_cmds, "ZRANGE", sizeof("ZRANGE") - 1, NULL);
132+
zend_hash_str_update_ptr(ra->pure_cmds, "ZRANK", sizeof("ZRANK") - 1, NULL);
133+
zend_hash_str_update_ptr(ra->pure_cmds, "ZREVRANGE", sizeof("ZREVRANGE") - 1, NULL);
134+
zend_hash_str_update_ptr(ra->pure_cmds, "ZREVRANGEBYSCORE", sizeof("ZREVRANGEBYSCORE") - 1, NULL);
135+
zend_hash_str_update_ptr(ra->pure_cmds, "ZREVRANK", sizeof("ZREVRANK") - 1, NULL);
136+
zend_hash_str_update_ptr(ra->pure_cmds, "ZSCORE", sizeof("ZSCORE") - 1, NULL);
136137
}
137138

138139
static int
@@ -687,7 +688,7 @@ ra_is_write_cmd(RedisArray *ra, const char *cmd, int cmd_len) {
687688
cmd_up[i] = toupper(cmd[i]);
688689
cmd_up[cmd_len] = 0;
689690

690-
ret = zend_hash_str_exists(Z_ARRVAL(ra->z_pure_cmds), cmd_up, cmd_len);
691+
ret = zend_hash_str_exists(ra->pure_cmds, cmd_up, cmd_len);
691692

692693
efree(cmd_up);
693694
return !ret;

0 commit comments

Comments
 (0)