diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mkid.c | 9 | ||||
-rw-r--r-- | src/xtokid.c | 6 |
2 files changed, 13 insertions, 2 deletions
@@ -383,13 +383,17 @@ scan_files (struct idhead *idhp) hash_init (&token_table, n, token_hash_1, token_hash_2, token_hash_cmp); if (verbose_flag) - printf ("member files=%ld, token table slots=%ld\n", + printf ("files=%ld, largest=%lu, slots=%ld\n", idhp->idh_member_file_table.ht_fill, - token_table.ht_size); + largest_member_file, token_table.ht_size); init_hits_signature (0); init_summary (); obstack_init (&tokens_obstack); + if (largest_member_file > MAX_LARGEST_MEMBER_FILE) + largest_member_file = MAX_LARGEST_MEMBER_FILE; + scanner_buffer = MALLOC (unsigned char, largest_member_file + 1); + for (;;) { struct member_file *member = *members++; @@ -401,6 +405,7 @@ scan_files (struct idhead *idhp) bump_current_hits_signature (); } + free (scanner_buffer); free (members_0); } diff --git a/src/xtokid.c b/src/xtokid.c index 239a6f2..327a4af 100644 --- a/src/xtokid.c +++ b/src/xtokid.c @@ -182,8 +182,14 @@ scan_files (struct idhead *idhp) struct member_file **end = &members_0[idhp->idh_member_file_table.ht_fill]; struct member_file **members; + if (largest_member_file > MAX_LARGEST_MEMBER_FILE) + largest_member_file = MAX_LARGEST_MEMBER_FILE; + scanner_buffer = MALLOC (unsigned char, largest_member_file + 1); + for (members = members_0; members < end; members++) scan_member_file (*members); + + free (scanner_buffer); free (members_0); } |