mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-27 07:34:15 +02:00
Merge pull request #5965 from Icinga/feature/json-casts
Avoid unnecessary casts in the JSON encoder
This commit is contained in:
commit
c2fedb3076
@ -81,12 +81,24 @@ static void Encode(yajl_gen handle, const Value& value)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case ValueObject:
|
case ValueObject:
|
||||||
if (value.IsObjectType<Dictionary>())
|
{
|
||||||
EncodeDictionary(handle, value);
|
const Object::Ptr& obj = value.Get<Object::Ptr>();
|
||||||
else if (value.IsObjectType<Array>())
|
Dictionary::Ptr dict = dynamic_pointer_cast<Dictionary>(obj);
|
||||||
EncodeArray(handle, value);
|
|
||||||
else
|
if (dict) {
|
||||||
yajl_gen_null(handle);
|
EncodeDictionary(handle, dict);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Array::Ptr arr = dynamic_pointer_cast<Array>(obj);
|
||||||
|
|
||||||
|
if (arr) {
|
||||||
|
EncodeArray(handle, arr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
yajl_gen_null(handle);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case ValueEmpty:
|
case ValueEmpty:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user