=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mandocdb.c,v retrieving revision 1.28 retrieving revision 1.29 diff -c -r1.28 -r1.29 *** src/usr.bin/mandoc/mandocdb.c 2011/12/25 13:05:29 1.28 --- src/usr.bin/mandoc/mandocdb.c 2011/12/25 14:51:33 1.29 *************** *** 1,4 **** ! /* $Id: mandocdb.c,v 1.28 2011/12/25 13:05:29 schwarze Exp $ */ /* * Copyright (c) 2011 Kristaps Dzonsons * Copyright (c) 2011 Ingo Schwarze --- 1,4 ---- ! /* $Id: mandocdb.c,v 1.29 2011/12/25 14:51:33 schwarze Exp $ */ /* * Copyright (c) 2011 Kristaps Dzonsons * Copyright (c) 2011 Ingo Schwarze *************** *** 563,569 **** uint64_t mask; size_t sv; unsigned seq; ! struct db_val vbuf; char type; rec = 0; --- 563,569 ---- uint64_t mask; size_t sv; unsigned seq; ! uint64_t vbuf[2]; char type; rec = 0; *************** *** 702,708 **** recs->last = 0; } else rec++; ! vbuf.rec = htobe32(rec); /* * Copy from the in-memory hashtable of pending --- 702,708 ---- recs->last = 0; } else rec++; ! vbuf[1] = htobe64(rec); /* * Copy from the in-memory hashtable of pending *************** *** 714,721 **** 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); val.data = &vbuf; dbt_put(mdb->db, mdb->dbn, &key, &val); } --- 714,721 ---- seq = R_NEXT; assert(sizeof(uint64_t) == val.size); memcpy(&mask, val.data, val.size); ! vbuf[0] = htobe64(mask); ! val.size = sizeof(vbuf); val.data = &vbuf; dbt_put(mdb->db, mdb->dbn, &key, &val); } *************** *** 756,762 **** { const struct of *of; const char *fn; ! struct db_val *vbuf; unsigned seq, sseq; DBT key, val; int ch; --- 756,762 ---- { const struct of *of; const char *fn; ! uint64_t vbuf[2]; unsigned seq, sseq; DBT key, val; int ch; *************** *** 805,815 **** while (0 == (ch = (*mdb->db->seq)(mdb->db, &key, &val, sseq))) { sseq = R_NEXT; ! if (sizeof(struct db_val) != val.size) break; ! vbuf = val.data; ! if (recs->last != betoh32(vbuf->rec)) continue; if ((ch = (*mdb->db->del)(mdb->db, --- 805,815 ---- while (0 == (ch = (*mdb->db->seq)(mdb->db, &key, &val, sseq))) { sseq = R_NEXT; ! if (sizeof(vbuf) != val.size) break; ! memcpy(vbuf, val.data, val.size); ! if (recs->last != betoh64(vbuf[1])) continue; if ((ch = (*mdb->db->del)(mdb->db,