# HG changeset patch # User Lucas Thompson # Date 1486125697 0 # Node ID 03b067abd91d5e2c23ed1924c5536c6320928b9b # Parent 02c3a8596c2bde3724a95ef3b9bca246a069ea62 Explicitly handle the individual error cases. diff -r 02c3a8596c2b -r 03b067abd91d vamp-json/VampJson.h --- a/vamp-json/VampJson.h Fri Feb 03 11:18:41 2017 +0000 +++ b/vamp-json/VampJson.h Fri Feb 03 12:41:37 2017 +0000 @@ -1109,13 +1109,18 @@ static bool successful(json11::Json j, std::string &err) { - if (j["result"].is_object()) { - return true; - } else if (j["error"].is_object()) { + const bool hasResult = j["result"].is_object(); + const bool hasError = j["error"].is_object(); + if (hasResult && hasError) { + err = "valid response may contain only one of result and error objects"; + return false; + } else if (hasError) { + return false; + } else if (!hasResult) { + err = "either a result or an error object is required for a valid response"; return false; } else { - err = "result or error object required for valid response"; - return false; + return true; } }