diff options
author | Steven Knight <knight@baldmt.com> | 2004-03-31 12:28:33 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-03-31 12:28:33 (GMT) |
commit | b421b8da6d7925aaffe347c49d8851cb166e922e (patch) | |
tree | 7a3f03918de6d86f5aaa737e576288d3d063702f /src/engine | |
parent | 1d77f7097830acce939fcaa8315ae659f1ecc7dd (diff) | |
download | SCons-b421b8da6d7925aaffe347c49d8851cb166e922e.zip SCons-b421b8da6d7925aaffe347c49d8851cb166e922e.tar.gz SCons-b421b8da6d7925aaffe347c49d8851cb166e922e.tar.bz2 |
Avoid infinite recursion when comparing Environments, better sys.version use in src/setup/Tests.py.
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/SCons/Environment.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py index 8f576f5..62650d7 100644 --- a/src/engine/SCons/Environment.py +++ b/src/engine/SCons/Environment.py @@ -260,7 +260,15 @@ class Base: options.Update(self) def __cmp__(self, other): - return cmp(self._dict, other._dict) + # Since an Environment now has an '__env__' construction variable + # that refers to itself, delete that variable to avoid infinite + # loops when comparing the underlying dictionaries in some Python + # versions (*cough* 1.5.2 *cough*)... + sdict = self._dict.copy() + del sdict['__env__'] + odict = other._dict.copy() + del odict['__env__'] + return cmp(sdict, odict) def __getitem__(self, key): return self._dict[key] |