diff options
author | Steven Knight <knight@baldmt.com> | 2010-06-15 21:04:47 +0000 |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2010-06-15 21:04:47 +0000 |
commit | dd8fe6f847d5ad5059f6b3752c904f956ec56c67 (patch) | |
tree | c13f47a573efee1038ead7d21149454a70b0dc52 /src/engine/SCons/Util.py | |
parent | e93ccd80add56640acbc325439a2f6f5c5ff032e (diff) | |
download | scons-dd8fe6f847d5ad5059f6b3752c904f956ec56c67.tar.gz |
Issue 2390: Support appending to $*FLAGS values (CLVar instances) in a
copied construction environment without also affecting the value in
the original construction environment. (Matt Hughes)
Diffstat (limited to 'src/engine/SCons/Util.py')
-rw-r--r-- | src/engine/SCons/Util.py | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py index cc6c95e0..7a6cb515 100644 --- a/src/engine/SCons/Util.py +++ b/src/engine/SCons/Util.py @@ -459,22 +459,18 @@ def _semi_deepcopy_tuple(x): return tuple(map(semi_deepcopy, x)) d[tuple] = _semi_deepcopy_tuple -def _semi_deepcopy_inst(x): - if hasattr(x, '__semi_deepcopy__'): - return x.__semi_deepcopy__() - elif isinstance(x, UserDict): - return x.__class__(_semi_deepcopy_dict(x)) - elif isinstance(x, UserList): - return x.__class__(_semi_deepcopy_list(x)) - else: - return x -d[InstanceType] = _semi_deepcopy_inst - def semi_deepcopy(x): copier = _semi_deepcopy_dispatch.get(type(x)) if copier: return copier(x) else: + if hasattr(x, '__semi_deepcopy__'): + return x.__semi_deepcopy__() + elif isinstance(x, UserDict): + return x.__class__(_semi_deepcopy_dict(x)) + elif isinstance(x, UserList): + return x.__class__(_semi_deepcopy_list(x)) + return x |