}
- ecode = tdb->methods->oob(tdb, off
+ ecode = tdb->tdb2.io->oob(tdb, off
+ frec_len(frec)
+ sizeof(struct tdb_used_record),
false);
h = bucket_off(ftable_off, i);
for (off = tdb_read_off(tdb, h); off; off = f.next) {
- if (!first)
- first = off;
if (TDB_OFF_IS_ERR(off)) {
return off;
}
+ if (!first) {
+ off &= TDB_OFF_MASK;
+ first = off;
+ }
ecode = tdb_read_convert(tdb, off, &f, sizeof(f));
if (ecode != TDB_SUCCESS) {
return ecode;
for (len = 0; off + len < tdb->file->map_size; len++) {
char c;
- ecode = tdb->methods->tread(tdb, off, &c, 1);
+ ecode = tdb->tdb2.io->tread(tdb, off, &c, 1);
if (ecode != TDB_SUCCESS) {
return ecode;
}
uint64_t features;
enum TDB_ERROR ecode;
+ if (tdb->flags & TDB_VERSION1) {
+ if (tdb1_check(tdb, check, data) == -1)
+ return tdb->last_error;
+ return TDB_SUCCESS;
+ }
+
ecode = tdb_allrecord_lock(tdb, F_RDLCK, TDB_LOCK_WAIT, false);
if (ecode != TDB_SUCCESS) {
return tdb->last_error = ecode;