File htdig-cleanup-db.diff of Package htdig
diff -ur htdig-3.2.0b6.orig/db/bt_open.c htdig-3.2.0b6/db/bt_open.c
--- htdig-3.2.0b6.orig/db/bt_open.c 2002-02-02 19:18:05.000000000 +0100
+++ htdig-3.2.0b6/db/bt_open.c 2004-07-05 17:11:18.869261790 +0200
@@ -295,6 +295,7 @@
DB_LOCK metalock;
PAGE *root;
int ret, t_ret;
+ union{ BTMETA **mp; PAGE **pp; }cv;
ret = 0;
t = dbp->bt_internal;
@@ -311,8 +312,9 @@
if ((ret =
CDB___db_lget(dbc, 0, base_pgno, DB_LOCK_WRITE, 0, &metalock)) != 0)
goto err;
- if ((ret = CDB_memp_fget(
- dbp->mpf, &base_pgno, DB_MPOOL_CREATE, (PAGE **)&meta)) != 0)
+ cv.mp = &meta;
+ if ((ret = CDB_memp_fget(
+ dbp->mpf, &base_pgno, DB_MPOOL_CREATE, cv.mp)) != 0)
goto err;
/*
diff -ur htdig-3.2.0b6.orig/db/bt_stat.c htdig-3.2.0b6/db/bt_stat.c
--- htdig-3.2.0b6.orig/db/bt_stat.c 2002-02-02 19:18:05.000000000 +0100
+++ htdig-3.2.0b6/db/bt_stat.c 2004-07-05 17:13:58.620951679 +0200
@@ -46,6 +46,7 @@
PAGE *h;
db_pgno_t pgno;
int ret, t_ret;
+ union{ BTMETA **mp; PAGE **pp; }cv;
PANIC_CHECK(dbp->dbenv);
DB_ILLEGAL_BEFORE_OPEN(dbp, "DB->stat");
@@ -93,7 +94,8 @@
pgno = PGNO_BASE_MD;
if ((ret = CDB___db_lget(dbc, 0, pgno, DB_LOCK_READ, 0, &lock)) != 0)
goto err;
- if ((ret = CDB_memp_fget(dbp->mpf, &pgno, 0, (PAGE **)&meta)) != 0)
+ cv.mp = &meta;
+ if ((ret = CDB_memp_fget(dbp->mpf, &pgno, 0, cv.mp)) != 0)
goto err;
/* Walk the metadata free list, counting pages. */
@@ -122,8 +124,9 @@
if ((ret =
CDB___db_lget(dbc, 0, t->bt_meta, DB_LOCK_READ, 0, &lock)) != 0)
goto err;
+ cv.mp = &meta;
if ((ret =
- CDB_memp_fget(dbp->mpf, &t->bt_meta, 0, (PAGE **)&meta)) != 0)
+ CDB_memp_fget(dbp->mpf, &t->bt_meta, 0, cv.mp)) != 0)
goto err;
}
diff -ur htdig-3.2.0b6.orig/db/db_meta.c htdig-3.2.0b6/db/db_meta.c
--- htdig-3.2.0b6.orig/db/db_meta.c 2002-02-02 19:18:05.000000000 +0100
+++ htdig-3.2.0b6/db/db_meta.c 2004-07-05 17:23:28.878967333 +0200
@@ -79,6 +79,7 @@
PAGE *h;
db_pgno_t pgno;
int ret;
+ union{ DBMETA **mp; PAGE **pp; }cv;
dbp = dbc->dbp;
meta = NULL;
@@ -88,7 +89,8 @@
pgno = PGNO_BASE_MD;
if ((ret = CDB___db_lget(dbc, 0, pgno, DB_LOCK_WRITE, 0, &metalock)) != 0)
goto err;
- if ((ret = CDB_memp_fget(dbp->mpf, &pgno, 0, (PAGE **)&meta)) != 0)
+ cv.mp = &meta;
+ if ((ret = CDB_memp_fget(dbp->mpf, &pgno, 0, cv.mp)) != 0)
goto err;
if (meta->free == PGNO_INVALID) {
@@ -147,6 +149,7 @@
db_pgno_t pgno;
u_int32_t dirty_flag;
int ret, t_ret;
+ union{ DBMETA **mp; PAGE **pp; }cv;
dbp = dbc->dbp;
@@ -160,7 +163,8 @@
pgno = PGNO_BASE_MD;
if ((ret = CDB___db_lget(dbc, 0, pgno, DB_LOCK_WRITE, 0, &metalock)) != 0)
goto err;
- if ((ret = CDB_memp_fget(dbp->mpf, &pgno, 0, (PAGE **)&meta)) != 0) {
+ cv.mp = &meta;
+ if ((ret = CDB_memp_fget(dbp->mpf, &pgno, 0, cv.mp)) != 0) {
(void)__TLPUT(dbc, metalock);
goto err;
}
diff -ur htdig-3.2.0b6.orig/db/qam_stat.c htdig-3.2.0b6/db/qam_stat.c
--- htdig-3.2.0b6.orig/db/qam_stat.c 2002-02-02 19:18:05.000000000 +0100
+++ htdig-3.2.0b6/db/qam_stat.c 2004-07-05 17:21:19.300260895 +0200
@@ -47,6 +47,7 @@
db_indx_t indx;
db_pgno_t lastpgno, pgno;
int ret, t_ret;
+ union{ QMETA **mp; PAGE **pp; }cv;
PANIC_CHECK(dbp->dbenv);
DB_ILLEGAL_BEFORE_OPEN(dbp, "DB->stat");
@@ -76,7 +77,8 @@
/* Get the meta-data page. */
if ((ret = CDB___db_lget(dbc, 0, t->q_meta, DB_LOCK_READ, 0, &lock)) != 0)
goto err;
- if ((ret = CDB_memp_fget(dbp->mpf, &t->q_meta, 0, (PAGE **)&meta)) != 0)
+ cv.mp = &meta;
+ if ((ret = CDB_memp_fget(dbp->mpf, &t->q_meta, 0, cv.mp)) != 0)
goto err;
/* Get the metadata fields. */
diff -ur htdig-3.2.0b6.orig/db/hash.c htdig-3.2.0b6/db/hash.c
--- htdig-3.2.0b6.orig/db/hash.c 2002-06-11 18:44:35.000000000 +0200
+++ htdig-3.2.0b6/db/hash.c 2004-07-06 10:06:41.638815185 +0200
@@ -292,6 +292,7 @@
db_pgno_t mpgno;
int32_t l2, nbuckets;
int dirty_mmeta, i, ret, t_ret;
+ union{ DBMETA **mp; PAGE **pp; }cv;
hcp = (HASH_CURSOR *)dbc->internal;
dbp = dbc->dbp;
@@ -341,8 +342,9 @@
if ((ret = CDB___db_lget(dbc,
0, mpgno, DB_LOCK_WRITE, 0, &metalock)) != 0)
return (ret);
+ cv.mp = &mmeta;
if ((ret = CDB_memp_fget(dbp->mpf,
- &mpgno, 0, (PAGE **)&mmeta)) != 0)
+ &mpgno, 0, cv.mp)) != 0)
goto err;
}
if ((ret = CDB___ham_dirty_page(dbp, (PAGE *)hcp->hdr)) != 0)
diff -u htdig-3.2.0b6/db/qam_open.c.\~1\~ htdig-3.2.0b6/db/qam_open.c
--- htdig-3.2.0b6/db/qam_open.c.~1~ 2002-02-02 19:18:05.000000000 +0100
+++ htdig-3.2.0b6/db/qam_open.c 2004-07-06 10:56:17.022264520 +0200
@@ -43,6 +43,7 @@
DB_LSN orig_lsn;
QMETA *qmeta;
int ret, t_ret;
+ union{ QMETA **mp; PAGE **pp; }cv;
ret = 0;
t = dbp->q_internal;
@@ -62,8 +63,9 @@
if ((ret =
CDB___db_lget(dbc, 0, base_pgno, DB_LOCK_WRITE, 0, &metalock)) != 0)
goto err;
+ cv.mp = &qmeta;
if ((ret = CDB_memp_fget(
- dbp->mpf, &base_pgno, DB_MPOOL_CREATE, (PAGE **)&qmeta)) != 0)
+ dbp->mpf, &base_pgno, DB_MPOOL_CREATE, cv.mp)) != 0)
goto err;
/*