* Copyright 2002-2004 Project Purple
*/
-#include <assert.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <ctype.h>
{
int i = 0;
- dbenv->txn_checkpoint(dbenv, 0, 0, 0);
- id32db->close(id32db, 0);
- id32db = NULL;
- worddb->close(worddb, 0);
- worddb = NULL;
- for (i = 0; i < numdbs; i++) {
- dbconns[i]->close(dbconns[i], 0);
- dbconns[i] = NULL;
+ if (dbenv != NULL) {
+ dbenv->txn_checkpoint(dbenv, 0, 0, 0);
+ if (id32db != NULL) {
+ id32db->close(id32db, 0);
+ id32db = NULL;
+ }
+ if (worddb != NULL) {
+ worddb->close(worddb, 0);
+ worddb = NULL;
+ }
+ for (i = 0; i < numdbs; i++) {
+ if (dbconns[i] != NULL) {
+ dbconns[i]->close(dbconns[i], 0);
+ dbconns[i] = NULL;
+ }
+ }
+ dbenv->close(dbenv, 0);
+ dbenv = NULL;
}
- dbenv->close(dbenv, 0);
- dbenv = NULL;
}
/**
{
int ret;
- assert(dbenv != NULL);
- assert(txn == NULL);
+ log_assert(dbenv != NULL);
+ log_assert(txn == NULL);
ret = dbenv->txn_begin(dbenv,
NULL, /* No parent transaction */
{
int ret;
- assert(dbenv != NULL);
- assert(txn != NULL);
+ log_assert(dbenv != NULL);
+ log_assert(txn != NULL);
ret = txn->commit(txn,
0);
uids = NULL;
}
- if (!intrans) {
- endtrans();
- }
-
/*
* Write the truncated 32 bit keyid so we can lookup the full id for
* queries.
}
}
+ if (!intrans) {
+ endtrans();
+ }
+
return deadlock ? -1 : 0 ;
}