URI: 
       Remove match_pattern and inline the code in the caller - 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 eaed3251aefdb0cac2fb61970ccf2f8f52a097a2
   DIR parent 99e39cb4a6a9a5b21bae79d2e8c304019565ad93
  HTML Author: sin <sin@2f30.org>
       Date:   Sat,  6 Apr 2019 09:33:34 +0100
       
       Remove match_pattern and inline the code in the caller
       
       Diffstat:
         M chunker.c                           |      20 +++++++-------------
       
       1 file changed, 7 insertions(+), 13 deletions(-)
       ---
   DIR diff --git a/chunker.c b/chunker.c
       @@ -83,16 +83,6 @@ buzh_update(uint32_t sum, uint8_t out, uint8_t in, size_t size)
                return ROTL(sum, 1) ^ ROTL(buz[out], size % 32) ^ buz[in];
        }
        
       -static inline int
       -match_pattern(struct chunker *chunker, size_t chunk_size, uint32_t sum)
       -{
       -        if (chunk_size >= chunker->max_size)
       -                return 1;
       -        if (chunk_size < chunker->min_size)
       -                return 0;
       -        return (sum & chunker->mask) == 0;
       -}
       -
        static size_t
        get_chunk_size(struct chunker *chunker)
        {
       @@ -107,8 +97,8 @@ get_chunk_size(struct chunker *chunker)
        
                /*
                 * To achieve better deduplication, we chunk blocks based on a
       -         * recurring pattern occuring on the data stream. A fixed window
       -         * of WINSIZE bytes is slid over the data, and a rolling hash is
       +         * recurring pattern occuring on the data stream. We slide a fixed
       +         * window of WINSIZE bytes over the data, and a rolling hash is
                 * computed for this window.
                 * When the rolling hash matches a given pattern the block is chunked
                 * at the end of that window.
       @@ -125,7 +115,11 @@ get_chunk_size(struct chunker *chunker)
                                sum = buzh_update(sum, out, in, win_size);
                        }
        
       -                if (match_pattern(chunker, chunk_size, sum))
       +                if (chunk_size < chunker->min_size)
       +                        continue;
       +
       +                if (chunk_size >= chunker->max_size ||
       +                    (sum & chunker->mask) == 0)
                                return chunk_size;
                }
                return max_chunk_size;