diff options
author | Jakub Stasiak <jakub@stasiak.at> | 2014-06-04 11:21:29 +0100 |
---|---|---|
committer | Jakub Stasiak <jakub@stasiak.at> | 2014-06-04 11:21:29 +0100 |
commit | f07c6784b6d4d9931aafd3ddd0e5d1016886cea0 (patch) | |
tree | 7d89d7b9197b1846ecd544076692f87602ec1202 | |
parent | 9b62942e80252ae99c349091ffe3d858c8447fb4 (diff) | |
download | sqlalchemy-pr/97.tar.gz |
Remove another clone->clone reference cyclepr/97
-rw-r--r-- | lib/sqlalchemy/sql/visitors.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/visitors.py b/lib/sqlalchemy/sql/visitors.py index d9ad04fc0..5bbbb40e2 100644 --- a/lib/sqlalchemy/sql/visitors.py +++ b/lib/sqlalchemy/sql/visitors.py @@ -26,6 +26,7 @@ http://techspot.zzzeek.org/2008/01/23/expression-transformations/ from collections import deque from .. import util import operator +import weakref from .. import exc __all__ = ['VisitableType', 'Visitable', 'ClauseVisitor', @@ -306,8 +307,9 @@ def replacement_traverse(obj, opts, replace): else: if elem not in cloned: cloned[elem] = newelem = elem._clone() - newelem._copy_internals(clone=clone, **kw) + newelem._copy_internals(clone=weak_clone, **kw) return cloned[elem] + weak_clone = weakref.proxy(clone) if obj is not None: obj = clone(obj, **opts) |