NOISSUE sanitize Json

Removes magical parameter madness.
All require* can throw
All ensure* need a default value and never throw
This commit is contained in:
Petr Mrázek
2015-06-03 21:57:22 +02:00
parent dde35a0eb8
commit 24db645167
6 changed files with 129 additions and 117 deletions

View File

@@ -74,18 +74,18 @@ bool readOverrideOrders(QString path, PatchOrder &order)
// and then read it and process it if all above is true.
try
{
auto obj = Json::ensureObject(doc);
auto obj = Json::requireObject(doc);
// check order file version.
auto version = Json::ensureInteger(obj.value("version"));
auto version = Json::requireInteger(obj.value("version"));
if (version != currentOrderFileVersion)
{
throw JSONValidationError(QObject::tr("Invalid order file version, expected %1")
.arg(currentOrderFileVersion));
}
auto orderArray = Json::ensureArray(obj.value("order"));
auto orderArray = Json::requireArray(obj.value("order"));
for(auto item: orderArray)
{
order.append(Json::ensureString(item));
order.append(Json::requireString(item));
}
}
catch (JSONValidationError &err)