--- a/mercurial/transaction.py Fri May 19 13:16:15 2017 -0700
+++ b/mercurial/transaction.py Fri May 26 13:27:21 2017 -0700
@@ -431,6 +431,7 @@
'''commit the transaction'''
if self.count == 1:
self.validator(self) # will raise exception if needed
+ self.validator = None # Help prevent cycles.
self._generatefiles(group=gengroupprefinalize)
categories = sorted(self._finalizecallback)
for cat in categories:
@@ -464,6 +465,7 @@
self._writeundo()
if self.after:
self.after()
+ self.after = None # Help prevent cycles.
if self.opener.isfile(self._backupjournal):
self.opener.unlink(self._backupjournal)
if self.opener.isfile(self.journal):
@@ -487,6 +489,7 @@
self.journal = None
self.releasefn(self, True) # notify success of closing transaction
+ self.releasefn = None # Help prevent cycles.
# run post close action
categories = sorted(self._postclosecallback)
@@ -557,6 +560,7 @@
finally:
self.journal = None
self.releasefn(self, False) # notify failure of transaction
+ self.releasefn = None # Help prevent cycles.
def rollback(opener, vfsmap, file, report):
"""Rolls back the transaction contained in the given file