From 3c1a3fb899d702bb226daa0f1437c69ac603041a Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 20 May 2022 19:49:27 +0200 Subject: [PATCH] bugfix --- src/runtime/c/pgf/db.cxx | 10 +++++----- src/runtime/c/pgf/db.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/runtime/c/pgf/db.cxx b/src/runtime/c/pgf/db.cxx index b3ed0d2e0..f0c3860ed 100644 --- a/src/runtime/c/pgf/db.cxx +++ b/src/runtime/c/pgf/db.cxx @@ -592,7 +592,7 @@ size_t PgfDB::block_descr_size(object map) return ptr(block_descr, map)->sz; } -PGF_INTERNAL_DECL object PgfDB::new_block_descr(object o, size_t size) +PGF_INTERNAL_DECL object PgfDB::new_block_descr(object o, size_t size, txn_t txn_id) { object odescr; block_descr *descr; @@ -626,7 +626,7 @@ PGF_INTERNAL_DECL object PgfDB::new_block_descr(object o, size_t size) descr->chain = 0; descr->o = o; descr->block_size = size; - descr->block_txn_id = ms->curr_txn_id; + descr->block_txn_id = txn_id; descr->descr_txn_id = ms->curr_txn_id; return odescr; @@ -1073,11 +1073,11 @@ object PgfDB::realloc_internal(object oldo, size_t old_bytes, size_t new_bytes) PGF_INTERNAL object PgfDB::insert_block_descriptor(object map, object o, size_t size) { - if (map == 0) - return new_block_descr(o, size); - txn_t txn_id = (o >= ms->top) ? 0 : ms->curr_txn_id; + if (map == 0) + return new_block_descr(o, size, txn_id); + block_descr *descr = ptr(block_descr, map); int cmp = (size < descr->block_size) ? -1 : (size > descr->block_size) ? 1 diff --git a/src/runtime/c/pgf/db.h b/src/runtime/c/pgf/db.h index c03d1f543..90f8799de 100644 --- a/src/runtime/c/pgf/db.h +++ b/src/runtime/c/pgf/db.h @@ -128,7 +128,7 @@ private: PGF_INTERNAL_DECL int init_state(); PGF_INTERNAL_DECL size_t block_descr_size(object map); - PGF_INTERNAL_DECL object new_block_descr(object o, size_t size); + PGF_INTERNAL_DECL object new_block_descr(object o, size_t size, txn_t txn_id); PGF_INTERNAL_DECL object upd_block_descr(object map, object left, object right); PGF_INTERNAL_DECL object balanceL_block_descriptor(object map); PGF_INTERNAL_DECL object balanceR_block_descriptor(object map);