fixed: set find_helper.found=true in CallSpaceWrapper() and CallSpace()
This commit is contained in:
parent
973f05cc08
commit
b9f1fa913e
|
@ -1445,7 +1445,6 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
{
|
{
|
||||||
pt::Space * space = space_wrapper.get_space();
|
pt::Space * space = space_wrapper.get_space();
|
||||||
size_t model_wrapper_space_table_index = 0;
|
size_t model_wrapper_space_table_index = 0;
|
||||||
//space_wrapper.set_last_for_loop_status(false);
|
|
||||||
|
|
||||||
while( find_helper.is_next_field() )
|
while( find_helper.is_next_field() )
|
||||||
{
|
{
|
||||||
|
@ -1462,7 +1461,6 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// may this is a global function so return true
|
// may this is a global function so return true
|
||||||
//find_helper.found = false; // set find_helper.found here?
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1480,6 +1478,7 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
if( space->table_size() > 0 )
|
if( space->table_size() > 0 )
|
||||||
{
|
{
|
||||||
find_helper.result->set(*space->value.value_table.front(), false);
|
find_helper.result->set(*space->value.value_table.front(), false);
|
||||||
|
find_helper.found = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1496,6 +1495,7 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
if( space->table_size() > 0 )
|
if( space->table_size() > 0 )
|
||||||
{
|
{
|
||||||
find_helper.result->set(*space->value.value_table.back(), false);
|
find_helper.result->set(*space->value.value_table.back(), false);
|
||||||
|
find_helper.found = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1513,6 +1513,7 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
// a [for ...] was not used beforehand
|
// a [for ...] was not used beforehand
|
||||||
// return true, this can be a global method such as 'size'
|
// return true, this can be a global method such as 'size'
|
||||||
find_helper.result->set(*space, false);
|
find_helper.result->set(*space, false);
|
||||||
|
find_helper.found = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1528,8 +1529,8 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
find_helper.field_index += 1;
|
find_helper.field_index += 1;
|
||||||
size_t iterator_value = space_wrapper.get_space_iterator_value(model_wrapper_space_table_index);
|
size_t iterator_value = space_wrapper.get_space_iterator_value(model_wrapper_space_table_index);
|
||||||
find_helper.result->set(static_cast<unsigned long long>(iterator_value));
|
find_helper.result->set(static_cast<unsigned long long>(iterator_value));
|
||||||
|
find_helper.found = true;
|
||||||
return true;
|
return true;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if( next_field == L"index-one" )
|
if( next_field == L"index-one" )
|
||||||
|
@ -1537,8 +1538,8 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
find_helper.field_index += 1;
|
find_helper.field_index += 1;
|
||||||
size_t iterator_value = space_wrapper.get_space_iterator_value(model_wrapper_space_table_index);
|
size_t iterator_value = space_wrapper.get_space_iterator_value(model_wrapper_space_table_index);
|
||||||
find_helper.result->set(static_cast<unsigned long long>(iterator_value + 1));
|
find_helper.result->set(static_cast<unsigned long long>(iterator_value + 1));
|
||||||
|
find_helper.found = true;
|
||||||
return true;
|
return true;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if( next_field == L"is_first" )
|
if( next_field == L"is_first" )
|
||||||
|
@ -1546,8 +1547,8 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
find_helper.field_index += 1;
|
find_helper.field_index += 1;
|
||||||
size_t iterator_value = space_wrapper.get_space_iterator_value(model_wrapper_space_table_index);
|
size_t iterator_value = space_wrapper.get_space_iterator_value(model_wrapper_space_table_index);
|
||||||
find_helper.result->set(iterator_value == 0);
|
find_helper.result->set(iterator_value == 0);
|
||||||
|
find_helper.found = true;
|
||||||
return true;
|
return true;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if( next_field == L"is_last" )
|
if( next_field == L"is_last" )
|
||||||
|
@ -1555,8 +1556,8 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
find_helper.field_index += 1;
|
find_helper.field_index += 1;
|
||||||
size_t iterator_value = space_wrapper.get_space_iterator_value(model_wrapper_space_table_index);
|
size_t iterator_value = space_wrapper.get_space_iterator_value(model_wrapper_space_table_index);
|
||||||
find_helper.result->set(iterator_value + 1 == space->table_size());
|
find_helper.result->set(iterator_value + 1 == space->table_size());
|
||||||
|
find_helper.found = true;
|
||||||
return true;
|
return true;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1580,6 +1581,8 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
model_wrapper_space_table_index += 1;
|
model_wrapper_space_table_index += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
find_helper.found = true;
|
||||||
|
|
||||||
if( space->is_table() )
|
if( space->is_table() )
|
||||||
{
|
{
|
||||||
CallSpaceTableForLastField(space_wrapper, *space, find_helper, model_wrapper_space_table_index);
|
CallSpaceTableForLastField(space_wrapper, *space, find_helper, model_wrapper_space_table_index);
|
||||||
|
@ -1590,7 +1593,7 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
//PrintLastSpaceField(*space, find_helper);
|
//PrintLastSpaceField(*space, find_helper);
|
||||||
find_helper.result->set(*space, false); // WARNING here a new space wrapper will be created, need to invastigate
|
find_helper.result->set(*space, false); // WARNING here a new space wrapper will be created, need to invastigate
|
||||||
|
|
||||||
if( find_helper.is_last_field() )
|
if( find_helper.is_last_field() ) // find_index will be incremented and the result is always false here
|
||||||
DumpSpaceIfNeeded(*space, find_helper);
|
DumpSpaceIfNeeded(*space, find_helper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1608,8 +1611,8 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
{
|
{
|
||||||
if( space->is_object() )
|
if( space->is_object() )
|
||||||
{
|
{
|
||||||
const std::wstring & next_field = find_helper.fields[find_helper.field_index - 1];
|
const std::wstring & current_field = find_helper.fields[find_helper.field_index - 1];
|
||||||
pt::Space * next_space = space->get_space(next_field);
|
pt::Space * next_space = space->get_space(current_field);
|
||||||
|
|
||||||
if( next_space )
|
if( next_space )
|
||||||
{
|
{
|
||||||
|
@ -1618,8 +1621,6 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// may this is a global function so return true
|
|
||||||
//find_helper.found = false; // set find_helper.found here?
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1637,6 +1638,8 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
find_helper.found = true;
|
||||||
|
|
||||||
if( space->is_table() )
|
if( space->is_table() )
|
||||||
{
|
{
|
||||||
// CreateMsg(L"you cannot iterate through space table when the space is added without a wrapper"); // IMPROVE the message
|
// CreateMsg(L"you cannot iterate through space table when the space is added without a wrapper"); // IMPROVE the message
|
||||||
|
@ -1650,7 +1653,7 @@ bool Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::CallSpace
|
||||||
//PrintLastSpaceField(*space, find_helper);
|
//PrintLastSpaceField(*space, find_helper);
|
||||||
find_helper.result->set(*space, false);
|
find_helper.result->set(*space, false);
|
||||||
|
|
||||||
if( find_helper.is_last_field() )
|
if( find_helper.is_last_field() ) // !! find_index was incremented and here find_index is greater than fields.size(), this returns false
|
||||||
DumpSpaceIfNeeded(*space, find_helper);
|
DumpSpaceIfNeeded(*space, find_helper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1984,7 +1987,7 @@ void Generator<StreamType, is_pikotools_stream, is_autoescape_stream>::FindVaria
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( find_helper.is_last_field() )
|
if( find_helper.is_last_field() ) // find_index was incremented and is greater than fields.size(), this returns false
|
||||||
{
|
{
|
||||||
find_helper.result->clear();
|
find_helper.result->clear();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue