mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-25 14:44:32 +02:00
parent
2626ee0256
commit
f05ccd07f9
@ -111,7 +111,7 @@ struct JsonElement
|
|||||||
{
|
{
|
||||||
String Key;
|
String Key;
|
||||||
bool KeySet;
|
bool KeySet;
|
||||||
Value Value;
|
Value EValue;
|
||||||
|
|
||||||
JsonElement(void)
|
JsonElement(void)
|
||||||
: KeySet(false)
|
: KeySet(false)
|
||||||
@ -124,7 +124,7 @@ public:
|
|||||||
void Push(const Value& value)
|
void Push(const Value& value)
|
||||||
{
|
{
|
||||||
JsonElement element;
|
JsonElement element;
|
||||||
element.Value = value;
|
element.EValue = value;
|
||||||
|
|
||||||
m_Stack.push(element);
|
m_Stack.push(element);
|
||||||
}
|
}
|
||||||
@ -140,24 +140,24 @@ public:
|
|||||||
{
|
{
|
||||||
if (m_Stack.empty()) {
|
if (m_Stack.empty()) {
|
||||||
JsonElement element;
|
JsonElement element;
|
||||||
element.Value = value;
|
element.EValue = value;
|
||||||
m_Stack.push(element);
|
m_Stack.push(element);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonElement& element = m_Stack.top();
|
JsonElement& element = m_Stack.top();
|
||||||
|
|
||||||
if (element.Value.IsObjectType<Dictionary>()) {
|
if (element.EValue.IsObjectType<Dictionary>()) {
|
||||||
if (!element.KeySet) {
|
if (!element.KeySet) {
|
||||||
element.Key = value;
|
element.Key = value;
|
||||||
element.KeySet = true;
|
element.KeySet = true;
|
||||||
} else {
|
} else {
|
||||||
Dictionary::Ptr dict = element.Value;
|
Dictionary::Ptr dict = element.EValue;
|
||||||
dict->Set(element.Key, value);
|
dict->Set(element.Key, value);
|
||||||
element.KeySet = false;
|
element.KeySet = false;
|
||||||
}
|
}
|
||||||
} else if (element.Value.IsObjectType<Array>()) {
|
} else if (element.EValue.IsObjectType<Array>()) {
|
||||||
Array::Ptr arr = element.Value;
|
Array::Ptr arr = element.EValue;
|
||||||
arr->Add(value);
|
arr->Add(value);
|
||||||
} else {
|
} else {
|
||||||
BOOST_THROW_EXCEPTION(std::invalid_argument("Cannot add value to JSON element."));
|
BOOST_THROW_EXCEPTION(std::invalid_argument("Cannot add value to JSON element."));
|
||||||
@ -167,7 +167,7 @@ public:
|
|||||||
Value GetValue(void) const
|
Value GetValue(void) const
|
||||||
{
|
{
|
||||||
ASSERT(m_Stack.size() == 1);
|
ASSERT(m_Stack.size() == 1);
|
||||||
return m_Stack.top().Value;
|
return m_Stack.top().EValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveException(void)
|
void SaveException(void)
|
||||||
@ -262,7 +262,7 @@ static int DecodeEndMap(void *ctx)
|
|||||||
JsonContext *context = static_cast<JsonContext *>(ctx);
|
JsonContext *context = static_cast<JsonContext *>(ctx);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
context->AddValue(context->Pop().Value);
|
context->AddValue(context->Pop().EValue);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
context->SaveException();
|
context->SaveException();
|
||||||
return 0;
|
return 0;
|
||||||
@ -290,7 +290,7 @@ static int DecodeEndArray(void *ctx)
|
|||||||
JsonContext *context = static_cast<JsonContext *>(ctx);
|
JsonContext *context = static_cast<JsonContext *>(ctx);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
context->AddValue(context->Pop().Value);
|
context->AddValue(context->Pop().EValue);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
context->SaveException();
|
context->SaveException();
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user