summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2007-05-18 05:40:31 (GMT)
committerSteven Knight <knight@baldmt.com>2007-05-18 05:40:31 (GMT)
commit9732927a82f458a4a672874b5a9cee8ac025d4e8 (patch)
tree4d532be0f91384214c930e1150d7e6becd44a92d /src/engine/SCons/Node
parent84a531159a6e54d0fac324b29d664b93230a20db (diff)
downloadSCons-0.97.zip
SCons-0.97.tar.gz
SCons-0.97.tar.bz2
Merged revisions 1884-1905 via svnmerge from0.97
http://scons.tigris.org/svn/scons/branches/core ........ r1891 | stevenknight | 2007-04-24 08:57:03 -0500 (Tue, 24 Apr 2007) | 1 line 0.96.D632 - Fix 0.96.96 reference count regression during parallel builds. ........ r1892 | stevenknight | 2007-04-24 12:51:05 -0500 (Tue, 24 Apr 2007) | 1 line 0.96.D633 - Fix documented default value(s) of $MSVS_USE_MFC_DIRS. ........ r1893 | stevenknight | 2007-04-24 16:12:14 -0500 (Tue, 24 Apr 2007) | 1 line 0.96.D634 - Make the DirEntryScanner tolerant of non-Dir nodes. ........ r1898 | stevenknight | 2007-05-09 15:07:15 -0500 (Wed, 09 May 2007) | 1 line 0.96.D635 - Portability fixes in test scripts. ........ r1899 | stevenknight | 2007-05-12 08:19:13 -0500 (Sat, 12 May 2007) | 1 line 0.96.D636 - Update documentation with rudimentary Tool module descriptions. ........ r1901 | stevenknight | 2007-05-17 14:32:14 -0500 (Thu, 17 May 2007) | 1 line 0.97.D001 - Initialize 0.97 for release. ........
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r--src/engine/SCons/Node/NodeTests.py5
-rw-r--r--src/engine/SCons/Node/__init__.py15
2 files changed, 18 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py
index 50de2b0..ad9eb66 100644
--- a/src/engine/SCons/Node/NodeTests.py
+++ b/src/engine/SCons/Node/NodeTests.py
@@ -1314,8 +1314,11 @@ class NodeTestCase(unittest.TestCase):
n1 = SCons.Node.Node()
n2 = SCons.Node.Node()
assert n1.waiting_parents == {}, n1.waiting_parents
- n1.add_to_waiting_parents(n2)
+ r = n1.add_to_waiting_parents(n2)
+ assert r == 1, r
assert n1.waiting_parents == {n2:1}, n1.waiting_parents
+ r = n1.add_to_waiting_parents(n2)
+ assert r == 0, r
def test_call_for_all_waiting_parents(self):
"""Test the call_for_all_waiting_parents() method"""
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index fa682a2..6644d7a 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -336,7 +336,20 @@ class Node:
self.waiting_s_e[node] = 1
def add_to_waiting_parents(self, node):
- self.waiting_parents[node] = 1
+ """
+ Returns the number of nodes added to our waiting parents list:
+ 1 if we add a unique waiting parent, 0 if not. (Note that the
+ returned values are intended to be used to increment a reference
+ count, so don't think you can "clean up" this function by using
+ True and False instead...)
+ """
+ wp = self.waiting_parents
+ if wp.has_key(node):
+ result = 0
+ else:
+ result = 1
+ wp[node] = 1
+ return result
def call_for_all_waiting_parents(self, func):
func(self)