]> err.no Git - varnish/commitdiff
Polish this to the new more general usage:
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 22 Jun 2008 11:46:00 +0000 (11:46 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 22 Jun 2008 11:46:00 +0000 (11:46 +0000)
Allocate smaller lumps.
Don't extend to clear bits.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2770 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/include/vbm.h

index 7015a1d96df45fdd84ad015bed3e4823fbd65d45..e4582c41fe3e5d675d364d1e49aa85f0412658c3 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 #define VBITMAP_TYPE   unsigned        /* Our preferred wordsize */
-#define VBITMAP_LUMP   (32*1024)       /* How many bits we alloc at a time */
+#define VBITMAP_LUMP   (1024)          /* How many bits we alloc at a time */
 #define VBITMAP_WORD   (sizeof(VBITMAP_TYPE) * 8)
 #define VBITMAP_IDX(n) (n / VBITMAP_WORD)
 #define VBITMAP_BIT(n) (1U << (n % VBITMAP_WORD))
@@ -88,9 +88,8 @@ static inline void
 vbit_clr(struct vbitmap *vb, unsigned bit)
 {
 
-       if (bit >= vb->nbits)
-               vbit_expand(vb, bit);
-       vb->bits[VBITMAP_IDX(bit)] &= ~VBITMAP_BIT(bit);
+       if (bit < vb->nbits)
+               vb->bits[VBITMAP_IDX(bit)] &= ~VBITMAP_BIT(bit);
 }
 
 static inline int
@@ -98,6 +97,6 @@ vbit_test(struct vbitmap *vb, unsigned bit)
 {
 
        if (bit >= vb->nbits)
-               vbit_expand(vb, bit);
+               return (0);
        return (vb->bits[VBITMAP_IDX(bit)] & VBITMAP_BIT(bit));
 }