URI: 
       Precalculate discriminator - dedup - deduplicating backup program
  HTML git clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR LICENSE
       ---
   DIR commit 5f4ef6bbdd11dbb7469365a3f244789e4ea15013
   DIR parent 5e1aa604d5f99e97f55d41dd0324cec8b4badd5b
  HTML Author: sin <sin@2f30.org>
       Date:   Fri, 22 Feb 2019 14:00:37 +0000
       
       Precalculate discriminator
       
       Diffstat:
         M chunker.c                           |      10 +++++-----
       
       1 file changed, 5 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/chunker.c b/chunker.c
       @@ -12,6 +12,7 @@ struct chunker {
                size_t cap;
                size_t rpos;
                size_t wpos;
       +        size_t discr;
                int fd;
        };
        
       @@ -22,15 +23,13 @@ calc_discr(size_t avg)
        }
        
        static int
       -match_pattern(size_t chunk_size, uint32_t fp)
       +match_pattern(struct chunker *chunker, size_t chunk_size, uint32_t fp)
        {
       -        size_t discr = calc_discr(BLKSIZE_AVG);
       -
                if (chunk_size >= BLKSIZE_MAX)
                        return 1;
                if (chunk_size < BLKSIZE_MIN)
                        return 0;
       -        return (fp % discr) == discr - 1;
       +        return (fp % chunker->discr) == chunker->discr - 1;
        }
        
        static size_t
       @@ -60,7 +59,7 @@ get_chunk_size(struct chunker *chunker)
                        if (i > 0)
                                fp = buzh_update(fp, bp[i - 1], bp[chunk_size - 1],
                                                 WINSIZE);
       -                if (match_pattern(chunk_size, fp) == 1)
       +                if (match_pattern(chunker, chunk_size, fp) == 1)
                                return chunk_size;
                }
                return chunk_size;
       @@ -82,6 +81,7 @@ alloc_chunker(size_t cap, int fd)
                chunker->rpos = 0;
                chunker->wpos = 0;
                chunker->fd = fd;
       +        chunker->discr = calc_discr(BLKSIZE_AVG);
        
                return chunker;
        }