Просмотр исходного кода

comp_with_mask: Slight optimization: Only calculate mask%8 once

Bryan Drewery 8 лет назад
Родитель
Сommit
a931a5d887
1 измененных файлов с 7 добавлено и 4 удалено
  1. 7 4
      src/match.cc

+ 7 - 4
src/match.cc

@@ -234,13 +234,16 @@ int _wild_match(unsigned char *m, unsigned char *n)
 static inline int
 comp_with_mask(void *addr, void *dest, unsigned int mask)
 {
-  if (memcmp(addr, dest, mask >> 3) == 0)
+  int n = mask >> 3;
+
+  if (memcmp(addr, dest, n) == 0)
   {
-    if (mask % 8 == 0)
+    int leftover = mask % 8;
+
+    if (leftover == 0)
       return (1);
 
-    int n = mask >> 3;
-    int m = ((-1) << (8 - (mask % 8)));
+    int m = ((-1) << (8 - leftover));
 
     if ((((unsigned char *) addr)[n] & m) == (((unsigned char *) dest)[n] & m))
       return (1);