2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-12 12:02:24 +00:00

Fix 'break' emulation. Inside "for local x in $(list)", changing 'list' does

not terminate the loop.


[SVN r29732]
This commit is contained in:
Vladimir Prus
2005-06-22 13:17:20 +00:00
parent 934212a32e
commit 08091f76b0

View File

@@ -688,7 +688,7 @@ rule override ( overrider-id : overridee-id )
local rule viable-source-types-real ( target-type )
{
local generators ;
local t = [ type.all-bases $(target-type) ] ;
local result ;
@@ -700,13 +700,20 @@ local rule viable-source-types-real ( target-type )
local generators = $(.generators.$(t[1])) ;
t = $(t[2-]) ;
for local g in $(generators)
while $(generators)
{
local g = $(generators[1]) ;
generators = $(generators[2-]) ;
if ! [ $(g).source-types ]
{
# Empty source types -- everything can be accepted
result = * ;
generator = ;
# This will terminate this loop.
generators = ;
# This will terminate outer loop.
t = ;
}
@@ -720,7 +727,7 @@ local rule viable-source-types-real ( target-type )
for local n in $(all)
{
if ! $(n) in $(result)
{
{
t += $(n) ;
result += $(n) ;
}