]> git.sesse.net Git - plocate/blobdiff - database-builder.cpp
Increase hard file limit if possible.
[plocate] / database-builder.cpp
index af688cf78186886d71507b95fdc26b6ca27bc2ca..1e3b442d1fb10af81d51ecdb99f8c527a942f36a 100644 (file)
@@ -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);
@@ -417,7 +417,7 @@ unique_ptr<Trigram[]> create_hashtable(Corpus &corpus, const vector<uint32_t> &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);
@@ -456,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()) {
@@ -597,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);
        }