Changeset: c1949c4c214f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c1949c4c214f Modified Files: gdk/gdk_atoms.c Branch: Oct2014 Log Message:
Test for common case first. diffs (59 lines): diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -576,30 +576,32 @@ numFromStr(const char *src, int *len, vo atommem(void, sz); while (GDKisspace(*p)) p++; - switch (*p) { - case 'n': - memcpy(*dst, ATOMnilptr(tp), sz); - if (p[1] == 'i' && p[2] == 'l') { - p += 3; - return (int) (p - src); + if (!num10(*p)) { + switch (*p) { + case 'n': + memcpy(*dst, ATOMnilptr(tp), sz); + if (p[1] == 'i' && p[2] == 'l') { + p += 3; + return (int) (p - src); + } + /* not a number */ + return 0; + case '-': + sign = -1; + p++; + break; + case '+': + p++; + /* fall through */ + default: + sign = 1; + break; } - /* not a number */ - return 0; - case '-': - sign = -1; - p++; - break; - case '+': - p++; - /* fall through */ - default: - sign = 1; - break; - } - if (!num10(*p)) { - /* not a number */ - memcpy(*dst, ATOMnilptr(tp), sz); - return 0; + if (!num10(*p)) { + /* still not a number */ + memcpy(*dst, ATOMnilptr(tp), sz); + return 0; + } } do { if (base > maxdiv10 || _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list