diff --git a/libqpdf/JSON.cc b/libqpdf/JSON.cc index fa523dc1..77418ddb 100644 --- a/libqpdf/JSON.cc +++ b/libqpdf/JSON.cc @@ -266,17 +266,13 @@ JSON::makeDictionary() JSON JSON::addDictionaryMember(std::string const& key, JSON const& val) { - JSON_dictionary* obj = dynamic_cast(this->m->value.get()); - if (nullptr == obj) { + if (auto* obj = dynamic_cast(this->m->value.get())) { + return obj->members[encode_string(key)] = + val.m->value ? val.m->value : std::make_shared(); + } else { throw std::runtime_error( "JSON::addDictionaryMember called on non-dictionary"); } - if (val.m->value.get()) { - obj->members[encode_string(key)] = val.m->value; - } else { - obj->members[encode_string(key)] = std::make_shared(); - } - return obj->members[encode_string(key)]; } bool