extern int am_server;
extern int do_progress;
extern int checksum_seed;
-extern int inplace;
-extern int make_backups;
+
+int updating_basis_file;
typedef unsigned short tag;
#define TABLESIZE (1<<16)
-#define NULL_TAG ((size_t)-1)
+#define NULL_TAG (-1)
static int false_alarms;
static int tag_hits;
struct target {
tag t;
- size_t i;
+ int32 i;
};
static struct target *targets;
-static size_t *tag_table;
+static int32 *tag_table;
#define gettag2(s1,s2) (((s1) + (s2)) & 0xFFFF)
#define gettag(sum) gettag2((sum)&0xFFFF,(sum)>>16)
static void build_hash_table(struct sum_struct *s)
{
- size_t i;
+ int32 i;
if (!tag_table)
- tag_table = new_array(size_t, TABLESIZE);
+ tag_table = new_array(int32, TABLESIZE);
targets = new_array(struct target, s->count);
if (!tag_table || !targets)
* have only literal data.
**/
static void matched(int f, struct sum_struct *s, struct map_struct *buf,
- OFF_T offset, int i)
+ OFF_T offset, int32 i)
{
int32 n = offset - last_match; /* max value: block_size (int32) */
int32 j;
struct map_struct *buf, OFF_T len)
{
OFF_T offset, end, backup;
- int32 k;
- size_t want_i;
+ int32 k, want_i;
char sum2[SUM_LENGTH];
uint32 s1, s2, sum;
int more;
do {
tag t = gettag2(s1,s2);
int done_csum2 = 0;
- size_t j = tag_table[t];
+ int32 j = tag_table[t];
if (verbose > 4)
rprintf(FINFO,"offset=%.0f sum=%08x\n",(double)offset,sum);
sum = (s1 & 0xffff) | (s2 << 16);
tag_hits++;
do {
- int32 l;
- size_t i = targets[j].i;
+ int32 l, i = targets[j].i;
if (sum != s->sums[i].sum1)
continue;
if (l != s->sums[i].len)
continue;
- /* inplace: ensure chunk's offset is either >= our
+ /* in-place: ensure chunk's offset is either >= our
* offset or that the data didn't move. */
- if (inplace && !make_backups && s->sums[i].offset < offset
+ if (updating_basis_file && s->sums[i].offset < offset
&& !(s->sums[i].flags & SUMFLG_SAME_OFFSET))
continue;
continue;
}
- /* If inplace is enabled, the best possible match is
+ /* When updating in-place, the best possible match is
* one with an identical offset, so we prefer that over
* the following want_i optimization. */
- if (inplace && !make_backups) {
+ if (updating_basis_file) {
do {
- size_t i2 = targets[j].i;
+ int32 i2 = targets[j].i;
if (s->sums[i2].offset != offset)
continue;
if (i2 != i) {
/* we've found a match, but now check to see
* if want_i can hint at a better match. */
if (i != want_i && want_i < s->count
- && (!inplace || make_backups || s->sums[want_i].offset >= offset
+ && (!updating_basis_file || s->sums[want_i].offset >= offset
|| s->sums[want_i].flags & SUMFLG_SAME_OFFSET)
&& sum == s->sums[want_i].sum1
&& memcmp(sum2, s->sums[want_i].sum2, s->s2length) == 0) {