mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-10 19:52:50 -06:00
transactions should always start with the last revision and release it when done
This commit is contained in:
@@ -1057,13 +1057,12 @@ void pgf_check_type(PgfDB *db, PgfRevision revision,
|
||||
}
|
||||
|
||||
PGF_API
|
||||
PgfRevision pgf_start_transaction(PgfDB *db, PgfRevision revision,
|
||||
PgfExn *err)
|
||||
PgfRevision pgf_start_transaction(PgfDB *db, PgfExn *err)
|
||||
{
|
||||
PGF_API_BEGIN {
|
||||
DB_scope scope(db, WRITER_SCOPE);
|
||||
|
||||
ref<PgfPGF> pgf = db->revision2pgf(revision);
|
||||
ref<PgfPGF> pgf = db->get_active_revision();
|
||||
|
||||
db->start_transaction();
|
||||
|
||||
@@ -1079,6 +1078,8 @@ PgfRevision pgf_start_transaction(PgfDB *db, PgfRevision revision,
|
||||
|
||||
object rev = db->register_revision(new_pgf.tagged(), PgfDB::get_txn_id());
|
||||
|
||||
PgfDB::free(pgf);
|
||||
|
||||
db->ref_count++;
|
||||
return rev;
|
||||
} PGF_API_END
|
||||
|
||||
Reference in New Issue
Block a user