diff options
| author | Stephan Richter <srichter@cipherhealth.com> | 2013-02-21 01:18:58 -0500 |
|---|---|---|
| committer | Stephan Richter <srichter@cipherhealth.com> | 2013-02-21 01:18:58 -0500 |
| commit | 4c51651d047cb044c877e878e49bbc8595758c75 (patch) | |
| tree | 4a2c676311c842e47c83fdf5ab0e99744bebc1f8 | |
| parent | bb9e803534e35b2ffd6b3cbae7b033fb10356fec (diff) | |
| download | zope-interface-4c51651d047cb044c877e878e49bbc8595758c75.tar.gz | |
- Fixed a bug that was revealed by porting zope.traversing. During a loop, the
loop body modified a weakref dict causing a ``RuntimeError`` error
| -rw-r--r-- | CHANGES.rst | 3 | ||||
| -rw-r--r-- | src/zope/interface/interface.py | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index c1e2647..28ab4dc 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,7 +4,8 @@ 4.0.4 (unreleased) ------------------ -- TBD +- Fixed a bug that was revealed by porting zope.traversing. During a loop, the + loop body modified a weakref dict causing a ``RuntimeError`` error. 4.0.3 (2012-12-31) ------------------ diff --git a/src/zope/interface/interface.py b/src/zope/interface/interface.py index 46d3f10..b04108f 100644 --- a/src/zope/interface/interface.py +++ b/src/zope/interface/interface.py @@ -248,7 +248,7 @@ class Specification(SpecificationBase): implied[ancestor] = () # Now, advise our dependents of change: - for dependent in self.dependents.keys(): + for dependent in tuple(self.dependents.keys()): dependent.changed(originally_changed) |
