From 682c73e87e6edfdfe76b9bb4b3d66ce39465b359 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 16 Apr 2010 14:42:14 +0200 Subject: [PATCH] check eptr inline --- redis.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/redis.c b/redis.c index 39296e91..b926e5a4 100644 --- a/redis.c +++ b/redis.c @@ -3106,7 +3106,7 @@ static size_t stringObjectLen(robj *o) { static int getDoubleFromObject(robj *o, double *target) { double value; - char *eptr = NULL; + char *eptr; if (o == NULL) { value = 0; @@ -3114,6 +3114,7 @@ static int getDoubleFromObject(robj *o, double *target) { redisAssert(o->type == REDIS_STRING); if (o->encoding == REDIS_ENCODING_RAW) { value = strtod(o->ptr, &eptr); + if (eptr[0] != '\0') return REDIS_ERR; } else if (o->encoding == REDIS_ENCODING_INT) { value = (long)o->ptr; } else { @@ -3121,10 +3122,6 @@ static int getDoubleFromObject(robj *o, double *target) { } } - if (eptr != NULL && eptr[0] != '\0') { - return REDIS_ERR; - } - *target = value; return REDIS_OK; } @@ -3146,7 +3143,7 @@ static int getDoubleFromObjectOrReply(redisClient *c, robj *o, double *target, c static int getLongLongFromObject(robj *o, long long *target) { long long value; - char *eptr = NULL; + char *eptr; if (o == NULL) { value = 0; @@ -3154,6 +3151,7 @@ static int getLongLongFromObject(robj *o, long long *target) { redisAssert(o->type == REDIS_STRING); if (o->encoding == REDIS_ENCODING_RAW) { value = strtoll(o->ptr, &eptr, 10); + if (eptr[0] != '\0') return REDIS_ERR; } else if (o->encoding == REDIS_ENCODING_INT) { value = (long)o->ptr; } else { @@ -3161,10 +3159,6 @@ static int getLongLongFromObject(robj *o, long long *target) { } } - if (eptr != NULL && eptr[0] != '\0') { - return REDIS_ERR; - } - *target = value; return REDIS_OK; }