From 8c9d5c54a4510a992ca7c409ccd4d359ed499250 Mon Sep 17 00:00:00 2001 From: Claudius Holeksa Date: Wed, 28 Jun 2023 11:22:13 +0200 Subject: c++,codec-json: Fixed bugs relating to wrong buffer calls and missing return call --- src/codec-json/json.tmpl.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/codec-json/json.tmpl.h') diff --git a/src/codec-json/json.tmpl.h b/src/codec-json/json.tmpl.h index 4f4d6f4..4ef8676 100644 --- a/src/codec-json/json.tmpl.h +++ b/src/codec-json/json.tmpl.h @@ -391,7 +391,7 @@ struct json_decode, RootSchema, ToDecode> { template struct json_decode { static error_or decode(buffer_view& buff, data& to){ - assert(buff.read('"')); + assert(buff.read() == '"'); buff.read_advance(1); std::stringstream iss; @@ -493,9 +493,9 @@ struct json_decode, RootSchema, ToDecode> { } ++index[Level]; - if(buff.read(',')){ + if(buff.read() == ','){ buff.read_advance(1); - } else if(buff.read(']')){ + } else if(buff.read() == ']'){ buff.read_advance(1); break; } else { @@ -516,9 +516,10 @@ struct json_decode, RootSchema, ToDecode> { } template - static error_or decode_unflat_level(const std::vector>& flat, data, ToDecode>& to, std::array& index, std::size_t& flat_index) { + static error_or decode_unflat_level(std::vector>& flat, data, ToDecode>& to, std::array& index, std::size_t& flat_index) { if constexpr ( Level == D ){ - to.at(index) = flat.at(flat_index); + auto& flat_data = flat.at(flat_index); + to.at(index) = std::move(flat_data); ++flat_index; }else { const std::size_t dim_size = to.get_dim_size(Level); @@ -530,6 +531,7 @@ struct json_decode, RootSchema, ToDecode> { } } } + return void_t{}; } static error_or decode(buffer_view& buff, data, ToDecode>& to){ -- cgit v1.2.3