db(3): Fix aliasing warnings from modern GCC.

Obtained from:	NetBSD (CVS Rev. 1.20)
This commit is contained in:
Pedro F. Giffuni 2016-02-24 16:52:03 +00:00
parent 17696c12f5
commit 3579f3d9ea

View file

@ -236,9 +236,12 @@ __bt_split(BTREE *t, PAGE *sp, const DBT *key, const DBT *data, int flags,
WR_BINTERNAL(dest, nksize ? nksize : bl->ksize,
rchild->pgno, bl->flags & P_BIGKEY);
memmove(dest, bl->bytes, nksize ? nksize : bl->ksize);
if (bl->flags & P_BIGKEY &&
bt_preserve(t, *(pgno_t *)bl->bytes) == RET_ERROR)
goto err1;
if (bl->flags & P_BIGKEY) {
pgno_t pgno;
memcpy(&pgno, bl->bytes, sizeof(pgno));
if (bt_preserve(t, pgno) == RET_ERROR)
goto err1;
}
break;
case P_RINTERNAL:
/*
@ -544,9 +547,12 @@ bt_broot(BTREE *t, PAGE *h, PAGE *l, PAGE *r)
* If the key is on an overflow page, mark the overflow chain
* so it isn't deleted when the leaf copy of the key is deleted.
*/
if (bl->flags & P_BIGKEY &&
bt_preserve(t, *(pgno_t *)bl->bytes) == RET_ERROR)
return (RET_ERROR);
if (bl->flags & P_BIGKEY) {
pgno_t pgno;
memcpy(&pgno, bl->bytes, sizeof(pgno));
if (bt_preserve(t, pgno) == RET_ERROR)
return (RET_ERROR);
}
break;
case P_BINTERNAL:
bi = GETBINTERNAL(r, 0);