diff options
author | Jason Kirtland <jek@discorporate.us> | 2009-07-16 23:24:30 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2009-07-16 23:24:30 +0000 |
commit | f843442d97b801e1f57dc21aa0e25a30f4986018 (patch) | |
tree | ca83be99f627c461dbfff42c2d9dc789fc1f47f8 /lib/sqlalchemy/orm/identity.py | |
parent | f5b055fabb639c00beff1f00a458bc851a8704d9 (diff) | |
download | sqlalchemy-f843442d97b801e1f57dc21aa0e25a30f4986018.tar.gz |
Guard against a gc hitting during the sweep for dirty objects.
Diffstat (limited to 'lib/sqlalchemy/orm/identity.py')
-rw-r--r-- | lib/sqlalchemy/orm/identity.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/sqlalchemy/orm/identity.py b/lib/sqlalchemy/orm/identity.py index dc219e1eb..50301a13c 100644 --- a/lib/sqlalchemy/orm/identity.py +++ b/lib/sqlalchemy/orm/identity.py @@ -43,17 +43,18 @@ class IdentityMap(dict): del state._instance_dict self._mutable_attrs.discard(state) self._modified.discard(state) - + def _dirty_states(self): - return self._modified.union(s for s in self._mutable_attrs if s.modified) - + return self._modified.union(s for s in list(self._mutable_attrs) + if s.modified) + def check_modified(self): """return True if any InstanceStates present have been marked as 'modified'.""" if self._modified: return True else: - for state in self._mutable_attrs: + for state in list(self._mutable_attrs): if state.modified: return True return False |