Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
d55d5c5d
Commit
d55d5c5d
authored
May 28, 2010
by
antirez
Browse files
command table size calculated with sizeof
parent
1a132bbc
Changes
1
Hide whitespace changes
Inline
Side-by-side
redis.c
View file @
d55d5c5d
...
@@ -753,7 +753,6 @@ static void unwatchCommand(redisClient *c);
...
@@ -753,7 +753,6 @@ static void unwatchCommand(redisClient *c);
/* Global vars */
/* Global vars */
static
struct
redisServer
server
;
/* server global state */
static
struct
redisServer
server
;
/* server global state */
static
struct
redisCommand
*
commandTable
;
static
struct
redisCommand
*
commandTable
;
static
unsigned
int
commandTableSize
;
static
struct
redisCommand
readonlyCommandTable
[]
=
{
static
struct
redisCommand
readonlyCommandTable
[]
=
{
{
"get"
,
getCommand
,
2
,
REDIS_CMD_INLINE
,
NULL
,
1
,
1
,
1
},
{
"get"
,
getCommand
,
2
,
REDIS_CMD_INLINE
,
NULL
,
1
,
1
,
1
},
{
"set"
,
setCommand
,
3
,
REDIS_CMD_BULK
|
REDIS_CMD_DENYOOM
,
NULL
,
0
,
0
,
0
},
{
"set"
,
setCommand
,
3
,
REDIS_CMD_BULK
|
REDIS_CMD_DENYOOM
,
NULL
,
0
,
0
,
0
},
...
@@ -862,8 +861,7 @@ static struct redisCommand readonlyCommandTable[] = {
...
@@ -862,8 +861,7 @@ static struct redisCommand readonlyCommandTable[] = {
{
"punsubscribe"
,
punsubscribeCommand
,
-
1
,
REDIS_CMD_INLINE
,
NULL
,
0
,
0
,
0
},
{
"punsubscribe"
,
punsubscribeCommand
,
-
1
,
REDIS_CMD_INLINE
,
NULL
,
0
,
0
,
0
},
{
"publish"
,
publishCommand
,
3
,
REDIS_CMD_BULK
|
REDIS_CMD_FORCE_REPLICATION
,
NULL
,
0
,
0
,
0
},
{
"publish"
,
publishCommand
,
3
,
REDIS_CMD_BULK
|
REDIS_CMD_FORCE_REPLICATION
,
NULL
,
0
,
0
,
0
},
{
"watch"
,
watchCommand
,
-
2
,
REDIS_CMD_INLINE
,
NULL
,
0
,
0
,
0
},
{
"watch"
,
watchCommand
,
-
2
,
REDIS_CMD_INLINE
,
NULL
,
0
,
0
,
0
},
{
"unwatch"
,
unwatchCommand
,
1
,
REDIS_CMD_INLINE
,
NULL
,
0
,
0
,
0
},
{
"unwatch"
,
unwatchCommand
,
1
,
REDIS_CMD_INLINE
,
NULL
,
0
,
0
,
0
}
{
NULL
,
NULL
,
0
,
0
,
NULL
,
0
,
0
,
0
}
};
};
/*============================ Utility functions ============================ */
/*============================ Utility functions ============================ */
...
@@ -2256,16 +2254,12 @@ static int qsortRedisCommands(const void *r1, const void *r2) {
...
@@ -2256,16 +2254,12 @@ static int qsortRedisCommands(const void *r1, const void *r2) {
}
}
static
void
sortCommandTable
()
{
static
void
sortCommandTable
()
{
int
i
=
0
,
size
=
0
;
/* Determine and store the size of the command table */
while
(
readonlyCommandTable
[
i
++
].
name
!=
NULL
)
size
++
;
commandTableSize
=
size
;
/* Copy and sort the read-only version of the command table */
/* Copy and sort the read-only version of the command table */
commandTable
=
(
struct
redisCommand
*
)
malloc
(
sizeof
(
readonlyCommandTable
));
commandTable
=
(
struct
redisCommand
*
)
malloc
(
sizeof
(
readonlyCommandTable
));
memcpy
(
commandTable
,
readonlyCommandTable
,
sizeof
(
readonlyCommandTable
));
memcpy
(
commandTable
,
readonlyCommandTable
,
sizeof
(
readonlyCommandTable
));
qsort
(
commandTable
,
size
,
sizeof
(
struct
redisCommand
),
qsortRedisCommands
);
qsort
(
commandTable
,
sizeof
(
readonlyCommandTable
)
/
sizeof
(
struct
redisCommand
),
sizeof
(
struct
redisCommand
),
qsortRedisCommands
);
}
}
static
struct
redisCommand
*
lookupCommand
(
char
*
name
)
{
static
struct
redisCommand
*
lookupCommand
(
char
*
name
)
{
...
@@ -2273,7 +2267,7 @@ static struct redisCommand *lookupCommand(char *name) {
...
@@ -2273,7 +2267,7 @@ static struct redisCommand *lookupCommand(char *name) {
return
bsearch
(
return
bsearch
(
&
tmp
,
&
tmp
,
commandTable
,
commandTable
,
commandTableSize
,
sizeof
(
readonlyCommandTable
)
/
sizeof
(
struct
redisCommand
)
,
sizeof
(
struct
redisCommand
),
sizeof
(
struct
redisCommand
),
qsortRedisCommands
);
qsortRedisCommands
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment