2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-16 13:22:11 +00:00

Boost Jam code cleanup - rearranged popping state off the main build state machine stack after executing an external process command so that we do not use data from a freed state node. Freed state nodes actually get transferred to some 'freed state node list' so they still exist and this was not causing access violations but it was still a smell.

[SVN r79087]
This commit is contained in:
Jurko Gospodnetić
2012-06-25 16:29:57 +00:00
parent bc395d5f25
commit 8fd3f0ecce

View File

@@ -543,15 +543,15 @@ static void make1c( state * pState )
}
else
{
/* Pop state first because exec_wait() will push state. */
pop_state( &state_stack );
/* Increment the jobs running counter. */
++cmdsrunning;
/* Execute the actual build command. */
exec_cmd( cmd->buf, make_closure, pState->t, cmd->shell, rule_name,
target_name );
/* Increment the jobs running counter. */
++cmdsrunning;
/* Pop state first because exec_wait() will push state. */
pop_state( &state_stack );
/* Wait until we are under the concurrent command count limit. */
assert( 0 < globs.jobs );