From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39780) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHrfY-0005in-OC for qemu-devel@nongnu.org; Wed, 31 Oct 2018 10:40:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHrfS-0000II-3r for qemu-devel@nongnu.org; Wed, 31 Oct 2018 10:40:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34508) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gHrfR-0000HT-SF for qemu-devel@nongnu.org; Wed, 31 Oct 2018 10:40:22 -0400 From: Markus Armbruster References: <20181023152306.3123-1-david@redhat.com> <20181023152306.3123-2-david@redhat.com> Date: Wed, 31 Oct 2018 15:40:12 +0100 In-Reply-To: <20181023152306.3123-2-david@redhat.com> (David Hildenbrand's message of "Tue, 23 Oct 2018 17:23:00 +0200") Message-ID: <87pnvqdvsj.fsf@dusky.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH v3 1/7] qapi: use qemu_strtoi64() in parse_str List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Hildenbrand Cc: qemu-devel@nongnu.org, Eduardo Habkost , "Michael S . Tsirkin" , Michael Roth , Igor Mammedov , "Dr . David Alan Gilbert" , David Gibson David Hildenbrand writes: > The qemu api claims to be easier to use, and the resulting code seems to > agree. Ah, an opportunity to nitpick spelling! "The QEMU API", and "qapi: Use qemu_strtoi64() ..." > Signed-off-by: David Hildenbrand > --- > qapi/string-input-visitor.c | 17 ++++++----------- > 1 file changed, 6 insertions(+), 11 deletions(-) > > diff --git a/qapi/string-input-visitor.c b/qapi/string-input-visitor.c > index b3fdd0827d..c1454f999f 100644 > --- a/qapi/string-input-visitor.c > +++ b/qapi/string-input-visitor.c > @@ -20,6 +20,7 @@ > #include "qemu/option.h" > #include "qemu/queue.h" > #include "qemu/range.h" > +#include "qemu/cutils.h" > > > struct StringInputVisitor > @@ -46,10 +47,10 @@ static void free_range(void *range, void *dummy) > > static int parse_str(StringInputVisitor *siv, const char *name, Error **errp) > { > - char *str = (char *) siv->string; > - long long start, end; > + const char *str = (char *) siv->string; And an opportunity to nitpick whitespace! Drop the space between (char *) and siv->string while there. > + const char *endptr; > + int64_t start, end; > Range *cur; > - char *endptr; > > if (siv->ranges) { > return 0; > @@ -60,9 +61,7 @@ static int parse_str(StringInputVisitor *siv, const char *name, Error **errp) > } > > do { > - errno = 0; > - start = strtoll(str, &endptr, 0); > - if (errno == 0 && endptr > str) { > + if (!qemu_strtoi64(str, &endptr, 0, &start)) { > if (*endptr == '\0') { > cur = g_malloc0(sizeof(*cur)); > range_set_bounds(cur, start, start); > @@ -71,11 +70,7 @@ static int parse_str(StringInputVisitor *siv, const char *name, Error **errp) > str = NULL; > } else if (*endptr == '-') { > str = endptr + 1; > - errno = 0; > - end = strtoll(str, &endptr, 0); > - if (errno == 0 && endptr > str && start <= end && > - (start > INT64_MAX - 65536 || > - end < start + 65536)) { > + if (!qemu_strtoi64(str, &endptr, 0, &end) && start < end) { You deleted (start > INT64_MAX - 65536 || end < start + 65536). Can you explain that to me? I'm feeling particularly dense today... > if (*endptr == '\0') { > cur = g_malloc0(sizeof(*cur)); > range_set_bounds(cur, start, end);