#define gettag2(s1,s2) (((s1) + (s2)) & 0xFFFF)
#define gettag(sum) gettag2((sum)&0xFFFF,(sum)>>16)
#define gettag2(s1,s2) (((s1) + (s2)) & 0xFFFF)
#define gettag(sum) gettag2((sum)&0xFFFF,(sum)>>16)
targets = new_array(struct target, s->count);
if (!tag_table || !targets)
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,
* have only literal data.
**/
static void matched(int f, struct sum_struct *s, struct map_struct *buf,
struct map_struct *buf, OFF_T len)
{
OFF_T offset, end, backup;
struct map_struct *buf, OFF_T len)
{
OFF_T offset, end, backup;
if (verbose > 4)
rprintf(FINFO,"offset=%.0f sum=%08x\n",(double)offset,sum);
if (verbose > 4)
rprintf(FINFO,"offset=%.0f sum=%08x\n",(double)offset,sum);
* one with an identical offset, so we prefer that over
* the following want_i optimization. */
* one with an identical offset, so we prefer that over
* the following want_i optimization. */
/* 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
/* 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
|| s->sums[want_i].flags & SUMFLG_SAME_OFFSET)
&& sum == s->sums[want_i].sum1
&& memcmp(sum2, s->sums[want_i].sum2, s->s2length) == 0) {
|| s->sums[want_i].flags & SUMFLG_SAME_OFFSET)
&& sum == s->sums[want_i].sum1
&& memcmp(sum2, s->sums[want_i].sum2, s->s2length) == 0) {