X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Ftdb.c;h=b96c80103688fd299064b7558b556ab956560e6d;hb=72e974b25a04a72a1123501aafbb3b5d39019d42;hp=0fbe90f60996104cedd738a026d0b19599445361;hpb=156e5eb92f1d986957cb081b58320579c6e366dd;p=ccan diff --git a/ccan/tdb2/tdb.c b/ccan/tdb2/tdb.c index 0fbe90f6..b96c8010 100644 --- a/ccan/tdb2/tdb.c +++ b/ccan/tdb2/tdb.c @@ -38,7 +38,7 @@ static enum TDB_ERROR replace_data(struct tdb_context *tdb, /* We didn't like the existing one: remove it. */ if (old_off) { - add_stat(tdb, frees, 1); + tdb->stats.frees++; ecode = add_free_record(tdb, old_off, sizeof(struct tdb_used_record) + key.dsize + old_room); @@ -285,7 +285,7 @@ enum TDB_ERROR tdb_delete(struct tdb_context *tdb, struct tdb_data key) } /* Free the deleted entry. */ - add_stat(tdb, frees, 1); + tdb->stats.frees++; ecode = add_free_record(tdb, off, sizeof(struct tdb_used_record) + rec_key_length(&rec) @@ -327,6 +327,9 @@ void tdb_add_flag(struct tdb_context *tdb, unsigned flag) case TDB_SEQNUM: tdb->flags |= TDB_SEQNUM; break; + case TDB_ALLOW_NESTING: + tdb->flags |= TDB_ALLOW_NESTING; + break; default: tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL, TDB_LOG_USE_ERROR, @@ -357,6 +360,9 @@ void tdb_remove_flag(struct tdb_context *tdb, unsigned flag) case TDB_SEQNUM: tdb->flags &= ~TDB_SEQNUM; break; + case TDB_ALLOW_NESTING: + tdb->flags &= ~TDB_ALLOW_NESTING; + break; default: tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL, TDB_LOG_USE_ERROR, @@ -406,11 +412,11 @@ enum TDB_ERROR COLD tdb_logerr(struct tdb_context *tdb, va_end(ap); if (len < 0) { - tdb->log_fn(tdb, TDB_LOG_ERROR, tdb->log_data, - "out of memory formatting message:"); - tdb->log_fn(tdb, level, tdb->log_data, fmt); + tdb->log_fn(tdb, TDB_LOG_ERROR, + "out of memory formatting message:", tdb->log_data); + tdb->log_fn(tdb, level, fmt, tdb->log_data); } else { - tdb->log_fn(tdb, level, tdb->log_data, message); + tdb->log_fn(tdb, level, message, tdb->log_data); free(message); } errno = saved_errno;