From 16bce07c75e8b123f33ec5ef111611dda88d3333 Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Wed, 23 Jun 2021 21:56:04 +0200 Subject: [PATCH] fixed: in Space::CallSpace() we should not increment field index when a new table item is prepared --- src/generator.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/generator.h b/src/generator.h index bad4940..cee9647 100644 --- a/src/generator.h +++ b/src/generator.h @@ -1253,7 +1253,7 @@ void Generator::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::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::CallSpace(morm::ModelWrapper & model_wrapper, pt::Sp break; } } + + ++i; } else if( space->is_table() ) @@ -1320,6 +1323,8 @@ void Generator::CallSpace(morm::ModelWrapper & model_wrapper, pt::Sp (*table)[iterator_value]->serialize_to_json_stream(out_stream); } } + + ++i; } else { @@ -1347,6 +1352,7 @@ void Generator::CallSpace(morm::ModelWrapper & model_wrapper, pt::Sp if( is_last_field ) { space->serialize_to_string(out_stream); + ++i; } else {