]> git.sur5r.net Git - openldap/commitdiff
Set/clear mp_pad, md_pad (MDB_DUPFIXED data size).
authorHallvard Furuseth <hallvard@openldap.org>
Wed, 20 May 2015 02:04:38 +0000 (04:04 +0200)
committerHallvard Furuseth <hallvard@openldap.org>
Sun, 25 Oct 2015 09:55:21 +0000 (10:55 +0100)
mdb_xcursor_init1(): md_pad is only used when MDB_DUPFIXED.
mdb_page_split():    Copy mp_pad too. Used by mdb_page_list().

libraries/liblmdb/mdb.c

index 1e0579c8a7d2a65e41afa695eedc4da81a67cfe9..797c67b32e5cac99cedc3bee2f7f9b5a7f1aee9d 100644 (file)
@@ -7157,7 +7157,7 @@ mdb_xcursor_init1(MDB_cursor *mc, MDB_node *node)
                mx->mx_cursor.mc_flags = C_SUB;
        } else {
                MDB_page *fp = NODEDATA(node);
-               mx->mx_db.md_pad = mc->mc_pg[mc->mc_top]->mp_pad;
+               mx->mx_db.md_pad = 0;
                mx->mx_db.md_flags = 0;
                mx->mx_db.md_depth = 1;
                mx->mx_db.md_branch_pages = 0;
@@ -8152,6 +8152,7 @@ mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno
        /* Create a right sibling. */
        if ((rc = mdb_page_new(mc, mp->mp_flags, 1, &rp)))
                return rc;
+       rp->mp_pad = mp->mp_pad;
        DPRINTF(("new right sibling: page %"Z"u", rp->mp_pgno));
 
        if (mc->mc_snum < 2) {