aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/JSON.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf/JSON.cc')
-rw-r--r--libqpdf/JSON.cc12
1 files changed, 4 insertions, 8 deletions
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<JSON_dictionary*>(this->m->value.get());
- if (nullptr == obj) {
+ if (auto* obj = dynamic_cast<JSON_dictionary*>(this->m->value.get())) {
+ return obj->members[encode_string(key)] =
+ val.m->value ? val.m->value : std::make_shared<JSON_null>();
+ } 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<JSON_null>();
- }
- return obj->members[encode_string(key)];
}
bool