Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78246 - trunk/tools/build/v2/engine
From: steven_at_[hidden]
Date: 2012-04-28 14:19:15


Author: steven_watanabe
Date: 2012-04-28 14:19:12 EDT (Sat, 28 Apr 2012)
New Revision: 78246
URL: http://svn.boost.org/trac/boost/changeset/78246

Log:
Don't rescan targets when their internal include node is updated.
Text files modified:
   trunk/tools/build/v2/engine/make1.c | 31 +++++++++++++------------------
   1 files changed, 13 insertions(+), 18 deletions(-)

Modified: trunk/tools/build/v2/engine/make1.c
==============================================================================
--- trunk/tools/build/v2/engine/make1.c (original)
+++ trunk/tools/build/v2/engine/make1.c 2012-04-28 14:19:12 EDT (Sat, 28 Apr 2012)
@@ -585,30 +585,25 @@
             /* Target has been updated so rescan it for dependencies. */
             if ( ( t->fate >= T_FATE_MISSING ) &&
                 ( t->status == EXEC_CMD_OK ) &&
- !t->rescanned )
+ !( t->flags & T_FLAG_INTERNAL ) )
             {
                 TARGET * saved_includes;
- TARGET * target_to_rescan = t;
                 SETTINGS * s;
 
- target_to_rescan->rescanned = 1;
-
- if ( target_to_rescan->flags & T_FLAG_INTERNAL )
- target_to_rescan = t->original_target;
+ t->rescanned = 1;
 
                 /* Clean current includes. */
- saved_includes = target_to_rescan->includes;
- target_to_rescan->includes = 0;
+ saved_includes = t->includes;
+ t->includes = 0;
 
- s = copysettings( target_to_rescan->settings );
+ s = copysettings( t->settings );
                 pushsettings( root_module(), s );
- headers( target_to_rescan );
+ headers( t );
                 popsettings( root_module(), s );
                 freesettings( s );
 
- if ( target_to_rescan->includes )
+ if ( t->includes )
                 {
- target_to_rescan->includes->rescanned = 1;
                     /* Tricky. The parents have already been processed, but they
                      * have not seen the internal node, because it was just
                      * created. We need to make the calls to make1a() that would
@@ -619,20 +614,20 @@
                      * target is built, otherwise the parent would be considered
                      * built before this make1a() processing has even started.
                      */
- make0( target_to_rescan->includes, target_to_rescan->parents->target, 0, 0, 0 );
+ make0( t->includes, t->parents->target, 0, 0, 0 );
                     /* Link the old includes on to make sure that it gets
                      * cleaned up correctly.
                      */
- target_to_rescan->includes->includes = saved_includes;
- for ( c = target_to_rescan->parents; c; c = c->next )
+ t->includes->includes = saved_includes;
+ for ( c = t->parents; c; c = c->next )
                         c->target->depends = targetentry( c->target->depends,
- target_to_rescan->includes );
+ t->includes );
                     /* Will be processed below. */
- additional_includes = target_to_rescan->includes;
+ additional_includes = t->includes;
                 }
                 else
                 {
- target_to_rescan->includes = saved_includes;
+ t->includes = saved_includes;
                 }
             }
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk