aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/storage/ipc/standby.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c
index aeecaf6cabf..a3ceec88a15 100644
--- a/src/backend/storage/ipc/standby.c
+++ b/src/backend/storage/ipc/standby.c
@@ -986,9 +986,11 @@ StandbyAcquireAccessExclusiveLock(TransactionId xid, Oid dbOid, Oid relOid)
static void
StandbyReleaseLockList(List *locks)
{
- while (locks)
+ ListCell *lc;
+
+ foreach(lc, locks)
{
- xl_standby_lock *lock = (xl_standby_lock *) linitial(locks);
+ xl_standby_lock *lock = (xl_standby_lock *) lfirst(lc);
LOCKTAG locktag;
elog(trace_recovery(DEBUG4),
@@ -1002,9 +1004,9 @@ StandbyReleaseLockList(List *locks)
lock->xid, lock->dbOid, lock->relOid);
Assert(false);
}
- pfree(lock);
- locks = list_delete_first(locks);
}
+
+ list_free_deep(locks);
}
static void