summaryrefslogtreecommitdiff
path: root/src/engine/SCons/Util.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2010-06-15 21:04:47 +0000
committerSteven Knight <knight@baldmt.com>2010-06-15 21:04:47 +0000
commitdd8fe6f847d5ad5059f6b3752c904f956ec56c67 (patch)
treec13f47a573efee1038ead7d21149454a70b0dc52 /src/engine/SCons/Util.py
parente93ccd80add56640acbc325439a2f6f5c5ff032e (diff)
downloadscons-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.py18
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