]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
Fix last commit - sizeof(pgno_t) and C90 compat
authorHallvard Furuseth <hallvard@openldap.org>
Tue, 25 Jul 2017 18:17:21 +0000 (20:17 +0200)
committerHoward Chu <hyc@openldap.org>
Sat, 10 Oct 2020 11:56:25 +0000 (12:56 +0100)
libraries/liblmdb/mdb.c

index ad5dce6b76ed6199bc811f44c185edefcc24a373..3e4257493adb9fb8f8fd4bac5a2746abf2bfec22 100644 (file)
@@ -1037,7 +1037,7 @@ typedef struct MDB_page {
        /** Test if a page is a sub page */
 #define IS_SUBP(p)      F_ISSET((p)->mp_flags, P_SUBP)
 
-       /** Header for overflow pages, stored in an F_BIGDATA node */
+       /** Info about overflow page, stored in an F_BIGDATA node */
 typedef struct MDB_ovpage {
        pgno_t  op_pgno;
        txnid_t op_txnid;
@@ -8412,7 +8412,7 @@ mdb_leaf_size(MDB_env *env, MDB_val *key, MDB_val *data)
        sz = LEAFSIZE(key, data);
        if (sz > env->me_nodemax) {
                /* put on overflow page */
-               sz -= data->mv_size - sizeof(pgno_t);
+               sz -= data->mv_size - sizeof(MDB_ovpage);
        }
 
        return EVEN(sz + sizeof(indx_t));
@@ -8437,7 +8437,7 @@ mdb_branch_size(MDB_env *env, MDB_val *key)
        if (sz > env->me_nodemax) {
                /* put on overflow page */
                /* not implemented */
-               /* sz -= key->size - sizeof(pgno_t); */
+               /* sz -= key->size - sizeof(MDB_ovpage); */
        }
 
        return sz + sizeof(indx_t);
@@ -8511,7 +8511,7 @@ mdb_node_add(MDB_cursor *mc, indx_t indx,
                        /* Put data on overflow page. */
                        DPRINTF(("data size is %"Z"u, node would be %"Z"u, put data on overflow page",
                            data->mv_size, node_size+data->mv_size));
-                       node_size = EVEN(node_size + sizeof(pgno_t));
+                       node_size = EVEN(node_size + sizeof(MDB_ovpage));
                        if ((ssize_t)node_size > room)
                                goto full;
                        if ((rc = mdb_page_new(mc, P_OVERFLOW, ovpages, &ofp)))
@@ -8561,7 +8561,10 @@ update:
                        else
                                memcpy(ndata, data->mv_data, data->mv_size);
                } else {
-                       MDB_ovpage ovp = {ofp->mp_pgno, mc->mc_txn->mt_txnid, ofp->mp_pages};
+                       MDB_ovpage ovp;
+                       ovp.op_pgno = ofp->mp_pgno;
+                       ovp.op_txnid = mc->mc_txn->mt_txnid;
+                       ovp.op_pages = ofp->mp_pages;
                        memcpy(ndata, &ovp, sizeof(MDB_ovpage));
                        ndata = METADATA(ofp);
                        if (F_ISSET(flags, MDB_RESERVE))