fixed: in Space::CallSpace() we should not increment field index when a new table item is prepared
This commit is contained in:
parent
87ee461dd1
commit
16bce07c75
|
@ -1253,7 +1253,7 @@ void Generator<StreamType>::CallSpace(morm::ModelWrapper & model_wrapper, pt::Sp
|
|||
last_res = false;
|
||||
std::wstring * field = nullptr;
|
||||
|
||||
for(size_t i=field_index ; i < fields.size() + 1 ; ++i)
|
||||
for(size_t i=field_index ; i < fields.size() + 1 ; )
|
||||
{
|
||||
bool is_last_field = (i == fields.size());
|
||||
field = (i == 0) ? find_helper.fun_name : &fields[i - 1];
|
||||
|
@ -1269,6 +1269,7 @@ void Generator<StreamType>::CallSpace(morm::ModelWrapper & model_wrapper, pt::Sp
|
|||
}
|
||||
else
|
||||
{
|
||||
pt::Space * old = space;
|
||||
std::wstring & next_field = fields[i];
|
||||
space = space->get_object_field(next_field);
|
||||
|
||||
|
@ -1282,6 +1283,8 @@ void Generator<StreamType>::CallSpace(morm::ModelWrapper & model_wrapper, pt::Sp
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
++i;
|
||||
}
|
||||
else
|
||||
if( space->is_table() )
|
||||
|
@ -1320,6 +1323,8 @@ void Generator<StreamType>::CallSpace(morm::ModelWrapper & model_wrapper, pt::Sp
|
|||
(*table)[iterator_value]->serialize_to_json_stream(out_stream);
|
||||
}
|
||||
}
|
||||
|
||||
++i;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1347,6 +1352,7 @@ void Generator<StreamType>::CallSpace(morm::ModelWrapper & model_wrapper, pt::Sp
|
|||
if( is_last_field )
|
||||
{
|
||||
space->serialize_to_string(out_stream);
|
||||
++i;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue