summaryrefslogtreecommitdiffstats
path: root/mandocdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'mandocdb.c')
-rw-r--r--mandocdb.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/mandocdb.c b/mandocdb.c
index 3615c665..4a1ea4cc 100644
--- a/mandocdb.c
+++ b/mandocdb.c
@@ -575,7 +575,7 @@ index_merge(const struct of *of, struct mparse *mp,
uint64_t mask;
size_t sv;
unsigned seq;
- struct db_val vbuf;
+ uint64_t vbuf[2];
char type;
rec = 0;
@@ -714,7 +714,7 @@ index_merge(const struct of *of, struct mparse *mp,
recs->last = 0;
} else
rec++;
- vbuf.rec = htobe32(rec);
+ vbuf[1] = htobe64(rec);
/*
* Copy from the in-memory hashtable of pending
@@ -726,8 +726,8 @@ index_merge(const struct of *of, struct mparse *mp,
seq = R_NEXT;
assert(sizeof(uint64_t) == val.size);
memcpy(&mask, val.data, val.size);
- vbuf.mask = htobe64(mask);
- val.size = sizeof(struct db_val);
+ vbuf[0] = htobe64(mask);
+ val.size = sizeof(vbuf);
val.data = &vbuf;
dbt_put(mdb->db, mdb->dbn, &key, &val);
}
@@ -768,7 +768,7 @@ index_prune(const struct of *ofile, struct mdb *mdb, struct recs *recs)
{
const struct of *of;
const char *fn;
- struct db_val *vbuf;
+ uint64_t vbuf[2];
unsigned seq, sseq;
DBT key, val;
int ch;
@@ -817,11 +817,11 @@ index_prune(const struct of *ofile, struct mdb *mdb, struct recs *recs)
while (0 == (ch = (*mdb->db->seq)(mdb->db,
&key, &val, sseq))) {
sseq = R_NEXT;
- if (sizeof(struct db_val) != val.size)
+ if (sizeof(vbuf) != val.size)
break;
- vbuf = val.data;
- if (recs->last != betoh32(vbuf->rec))
+ memcpy(vbuf, val.data, val.size);
+ if (recs->last != betoh64(vbuf[1]))
continue;
if ((ch = (*mdb->db->del)(mdb->db,