From c99197616491693fa0fec5ff39ac4c2cd336f65b Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Sun, 30 Nov 2008 17:36:46 +0200 Subject: [PATCH] Set/clear rpmte db instance on RPMDB_ADD / REMOVE from psm - transaction elements now know their real status all the time now --- lib/psm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/psm.c b/lib/psm.c index 6164b66..c34304a 100644 --- a/lib/psm.c +++ b/lib/psm.c @@ -1615,8 +1615,10 @@ rpmRC rpmpsmStage(rpmpsm psm, pkgStage stage) else rc = rpmdbAdd(rpmtsGetRdb(ts), rpmtsGetTid(ts), h, NULL, NULL); - (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_DBADD), 0); + + if (rc == RPMRC_OK) + rpmteSetDBInstance(psm->te, headerGetInstance(h)); headerFree(h); } break; @@ -1626,6 +1628,8 @@ rpmRC rpmpsmStage(rpmpsm psm, pkgStage stage) rc = rpmdbRemove(rpmtsGetRdb(ts), rpmtsGetTid(ts), rpmteDBInstance(psm->te), NULL, NULL); (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_DBREMOVE), 0); + if (rc == RPMRC_OK) + rpmteSetDBInstance(psm->te, 0); break; default: -- 2.7.4