X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=database-builder.cpp;h=1e3b442d1fb10af81d51ecdb99f8c527a942f36a;hb=8a3af08ffbcb6b641bea2bb019df21e78d23ddfe;hp=642420f3c5942b6021157a2e19d559b751cdb255;hpb=63fd24efd774f1ed3f5dab82b934f35b7b039557;p=plocate diff --git a/database-builder.cpp b/database-builder.cpp index 642420f..1e3b442 100644 --- a/database-builder.cpp +++ b/database-builder.cpp @@ -163,7 +163,7 @@ string DictionaryBuilder::train(size_t buf_size) string buf; buf.resize(buf_size); size_t ret = ZDICT_trainFromBuffer(&buf[0], buf_size, dictionary_buf.data(), lengths.data(), lengths.size()); - if (ret == size_t(-1)) { + if (ZDICT_isError(ret)) { return ""; } dprintf("Sampled %zu bytes in %zu blocks, built a dictionary of size %zu\n", dictionary_buf.size(), lengths.size(), ret); @@ -224,7 +224,8 @@ void Corpus::add_file(string filename, dir_time dt) } } -void Corpus::compress_dir_times(size_t allowed_slop) { +void Corpus::compress_dir_times(size_t allowed_slop) +{ while (dir_times.size() >= allowed_slop) { size_t old_size = dir_times_compressed.size(); dir_times_compressed.resize(old_size + 4096); @@ -313,7 +314,7 @@ string Corpus::get_compressed_dir_times() compress_dir_times(/*allowed_slop=*/0); assert(dir_times.empty()); - for ( ;; ) { + for (;;) { size_t old_size = dir_times_compressed.size(); dir_times_compressed.resize(old_size + 4096); @@ -416,7 +417,7 @@ unique_ptr create_hashtable(Corpus &corpus, const vector &a return ht; } -DatabaseBuilder::DatabaseBuilder(const char *outfile, gid_t owner, int block_size, string dictionary) +DatabaseBuilder::DatabaseBuilder(const char *outfile, gid_t owner, int block_size, string dictionary, bool check_visibility) : outfile(outfile), block_size(block_size) { umask(0027); @@ -455,6 +456,7 @@ DatabaseBuilder::DatabaseBuilder(const char *outfile, gid_t owner, int block_siz hdr.max_version = 2; hdr.filename_index_offset_bytes = -1; hdr.zstd_dictionary_length_bytes = -1; + hdr.check_visibility = check_visibility; fwrite(&hdr, sizeof(hdr), 1, outfp); if (dictionary.empty()) { @@ -596,8 +598,8 @@ void DatabaseBuilder::finish_corpus() // And the configuration block. if (!conf_block.empty()) { - hdr.next_zstd_dictionary_offset_bytes = ftell(outfp); - hdr.next_zstd_dictionary_length_bytes = conf_block.size(); + hdr.conf_block_offset_bytes = ftell(outfp); + hdr.conf_block_length_bytes = conf_block.size(); fwrite(conf_block.data(), conf_block.size(), 1, outfp); }