From 4dfe1846ccb7b528bf3cdfd157ecaa9dcd1bb99b Mon Sep 17 00:00:00 2001 From: Gary Oberbrunner Date: Sat, 20 Nov 2010 21:09:00 +0000 Subject: Fix for #2690: handle null __semi_deepcopy. --- src/CHANGES.txt | 3 +++ src/engine/SCons/Util.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 39e9f9d..402b781 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -7,6 +7,9 @@ RELEASE 2.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE + From Dmitry R.: + - Handle Environment in case __semi_deepcopy is None + From Benoit Belley: - Much improved support for Windows UNC paths (\\SERVERNAME). diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py index 7a6cb51..2523eda 100644 --- a/src/engine/SCons/Util.py +++ b/src/engine/SCons/Util.py @@ -464,7 +464,7 @@ def semi_deepcopy(x): if copier: return copier(x) else: - if hasattr(x, '__semi_deepcopy__'): + if hasattr(x, '__semi_deepcopy__') and callable(x.__semi_deepcopy__): return x.__semi_deepcopy__() elif isinstance(x, UserDict): return x.__class__(_semi_deepcopy_dict(x)) -- cgit v0.12