From 5f1212ed6e108b52fa2925ff04b22f698455ec8d Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Tue, 5 Jul 2011 10:21:56 +0200 Subject: [PATCH] Reorder jumps in s_integer_start --- parser.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/parser.c b/parser.c index f48d8d9..f22d595 100644 --- a/parser.c +++ b/parser.c @@ -188,19 +188,19 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons i64.neg = 0; i64.ui64 = 0; - /* Break when char was consumed */ - if (ch == '-') { - i64.neg = 1; - TRANSITION(integer_19); - } - - /* First integer character */ + /* Start with number */ if (ch >= '1' && ch <= '9') { i64.ui64 = ch - '0'; TRANSITION(integer_09); } - /* Consume single zero character */ + /* Start with negative sign */ + if (ch == '-') { + i64.neg = 1; + TRANSITION(integer_19); + } + + /* Single integer character is a zero */ if (ch == '0') { TRANSITION(integer_cr); }