From d55d5c5dd3d09d8a9c9d9b0e17adbb764dfaff06 Mon Sep 17 00:00:00 2001 From: antirez Date: Fri, 28 May 2010 23:44:32 +0200 Subject: [PATCH] command table size calculated with sizeof --- redis.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/redis.c b/redis.c index 6ba7a3b9..92ae07b7 100644 --- a/redis.c +++ b/redis.c @@ -753,7 +753,6 @@ static void unwatchCommand(redisClient *c); /* Global vars */ static struct redisServer server; /* server global state */ static struct redisCommand *commandTable; -static unsigned int commandTableSize; static struct redisCommand readonlyCommandTable[] = { {"get",getCommand,2,REDIS_CMD_INLINE,NULL,1,1,1}, {"set",setCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,0,0,0}, @@ -862,8 +861,7 @@ static struct redisCommand readonlyCommandTable[] = { {"punsubscribe",punsubscribeCommand,-1,REDIS_CMD_INLINE,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}, - {"unwatch",unwatchCommand,1,REDIS_CMD_INLINE,NULL,0,0,0}, - {NULL,NULL,0,0,NULL,0,0,0} + {"unwatch",unwatchCommand,1,REDIS_CMD_INLINE,NULL,0,0,0} }; /*============================ Utility functions ============================ */ @@ -2256,16 +2254,12 @@ static int qsortRedisCommands(const void *r1, const void *r2) { } 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 */ commandTable = (struct redisCommand*)malloc(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) { @@ -2273,7 +2267,7 @@ static struct redisCommand *lookupCommand(char *name) { return bsearch( &tmp, commandTable, - commandTableSize, + sizeof(readonlyCommandTable)/sizeof(struct redisCommand), sizeof(struct redisCommand), qsortRedisCommands); } -- 2.47.2