diff --git a/deps/json11/json11.cpp b/deps/json11/json11.cpp index 9647846b6d150b806447d66c44a5188eea4050fa..88024e9223accf3c1a0a880d2cd1d793a24c9e97 100644 --- a/deps/json11/json11.cpp +++ b/deps/json11/json11.cpp @@ -441,9 +441,9 @@ struct JsonParser final { */ char get_next_token() { consume_garbage(); - if (failed) return (char)0; + if (failed) return static_cast(0); if (i == str.size()) - return fail("unexpected end of input", (char)0); + return fail("unexpected end of input", static_cast(0)); return str[i++]; } @@ -775,8 +775,10 @@ bool Json::has_shape(const shape & types, string & err) const { return false; } + const auto& obj_items = object_items(); for (auto & item : types) { - if ((*this)[item.first].type() != item.second) { + const auto it = obj_items.find(item.first); + if (it == obj_items.cend() || it->second.type() != item.second) { err = "bad type for " + item.first + " in " + dump(); return false; }