Don't remove bits for which there were no match.
authorDaniel Hokka Zakrisson <daniel@hozac.com>
Thu, 3 Jan 2008 15:33:01 +0000 (15:33 +0000)
committerDaniel Hokka Zakrisson <daniel@hozac.com>
Thu, 3 Jan 2008 15:33:01 +0000 (15:33 +0000)
Cast 1 to the TYPE, so uint64 values can be looked up.

git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2651 94cd875c-1c1d-0410-91d2-eb244daf1a30

lib/val2text.hc

index ee42bb3..26ea200 100644 (file)
                                                                        \
     if (idx==-1) {                                                     \
       size_t   i;                                                      \
-      for (i=0; i<sizeof(*val)*8 && (*val&(1<<i))==0; ++i) {}          \
-      del_val = (1<<i);                                                        \
+      for (i=0; i<sizeof(*val)*8 && (*val&((TYPE)1<<i))==0; ++i) {}    \
+      del_val = ((TYPE)1<<i);                                          \
       idx     = searchValue(del_val, map, map_len);                    \
     }                                                                  \
-    *val &= ~del_val;                                                  \
+    if (idx!=-1)                                                       \
+      *val &= ~del_val;                                                        \
     return idx;                                                                \
   }