summaryrefslogtreecommitdiffstats
path: root/src/mkid.c
diff options
context:
space:
mode:
authorGreg McGary <greg@mcgary.org>1999-04-06 07:44:19 +0000
committerGreg McGary <greg@mcgary.org>1999-04-06 07:44:19 +0000
commit06fa9166e54cea74bebaf0135f3eacfae4dab0c7 (patch)
tree6ec31699f499dfbc86d4bf974254b9f4e964e5a1 /src/mkid.c
parent626a5396f0341a9aee84ee25700a591c5ab39529 (diff)
downloadidutils-06fa9166e54cea74bebaf0135f3eacfae4dab0c7.tar.gz
idutils-06fa9166e54cea74bebaf0135f3eacfae4dab0c7.tar.bz2
idutils-06fa9166e54cea74bebaf0135f3eacfae4dab0c7.zip
* libidu/idfile.h (largest_member_file): Add variable decl.
(MAX_LARGEST_MEMBER_FILE): Add constant. * libidu/scanners.h (scanner_buffer): Add variable decl. * libidu/scanners.c (scanner_buffer): Rename from id_0. * libidu/walker.c (largest_member_file): Add veriable defn. (walk_flink): Maintain largest_member_file. Call print_member_file. (maybe_get_member_file): Don't call print_member_file. (classify_link): Return 0 if file size is zero. * src/mkid.c (scan_files): Report size of largest file. Cap scanner_buffer size at MAX_LARGEST_MEMBER_FILE. Allocate scanner_buffer. * src/xtokid.c (scan_files): Cap scanner_buffer size at MAX_LARGEST_MEMBER_FILE. Allocate scanner_buffer.
Diffstat (limited to 'src/mkid.c')
-rw-r--r--src/mkid.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mkid.c b/src/mkid.c
index 6002d67..fe8466e 100644
--- a/src/mkid.c
+++ b/src/mkid.c
@@ -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);
}