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

Reply via email to