Fix regression in sequence container FROM_JSON

This commit is contained in:
Gioacchino Mazzurco 2020-03-21 16:03:22 +01:00
parent fc5ad40c90
commit d666e58403
No known key found for this signature in database
GPG key ID: A1FBCA3872E87051

View file

@ -567,31 +567,29 @@ struct RsTypeSerializer
arrKey.SetString( memberName.c_str(), arrKey.SetString( memberName.c_str(),
static_cast<SizeType>(memberName.length()) ); static_cast<SizeType>(memberName.length()) );
ok = ok && jDoc.IsObject(); ok = ok && jDoc.IsObject() && jDoc.HasMember(arrKey)
ok = ok && jDoc.HasMember(arrKey); && jDoc[arrKey].IsArray();
if(!ok) { ctx.mOk = false; break; }
if(ok && jDoc[arrKey].IsArray()) for (auto&& arrEl : jDoc[arrKey].GetArray())
{ {
for (auto&& arrEl : jDoc[arrKey].GetArray()) Value arrKeyT;
{ arrKeyT.SetString(
Value arrKeyT; memberName.c_str(),
arrKeyT.SetString( static_cast<SizeType>(memberName.length()) );
memberName.c_str(),
static_cast<SizeType>(memberName.length()) );
RsGenericSerializer::SerializeContext elCtx( RsGenericSerializer::SerializeContext elCtx(
nullptr, 0, ctx.mFlags, &allocator ); nullptr, 0, ctx.mFlags, &allocator );
elCtx.mJson.AddMember(arrKeyT, arrEl, allocator); elCtx.mJson.AddMember(arrKeyT, arrEl, allocator);
el_t el; el_t el;
serial_process(j, elCtx, el, ""); serial_process(j, elCtx, el, memberName);
ok = ok && elCtx.mOk; ok = ok && elCtx.mOk;
ctx.mOk &= ok; ctx.mOk &= ok;
if(ok) member.insert(member.end(), el); if(ok) member.insert(member.end(), el);
else break; else break;
}
} }
else ctx.mOk = false;
break; break;
} }
default: fatalUnknownSerialJob(j); default: fatalUnknownSerialJob(j);