|
@@ -7288,35 +7288,34 @@ public:
|
|
{
|
|
{
|
|
offset_t startOffset = curOffset;
|
|
offset_t startOffset = curOffset;
|
|
StringBuffer value;
|
|
StringBuffer value;
|
|
- if (readValue(value)==elementTypeNull)
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
- if ('@'==*name)
|
|
|
|
- {
|
|
|
|
- if (!skipAttributes)
|
|
|
|
- iEvent->newAttribute(name, value.str());
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- else if ('#'==*name)
|
|
|
|
|
|
+ if (readValue(value)!=elementTypeNull)
|
|
{
|
|
{
|
|
- dbgassertex(retValue && isValueBinary);
|
|
|
|
- *isValueBinary = false;
|
|
|
|
- if (0 == strncmp(name+1, "value", 5)) // this is a special IPT JSON prop name, representing a 'complex' value
|
|
|
|
|
|
+ if ('@'==*name)
|
|
{
|
|
{
|
|
- if ('\0' == *(name+6)) // #value
|
|
|
|
- {
|
|
|
|
- retValue->swapWith(value);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- else if (streq(name+6, "bin")) // #valuebin
|
|
|
|
|
|
+ if (!skipAttributes)
|
|
|
|
+ iEvent->newAttribute(name, value.str());
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ else if ('#'==*name)
|
|
|
|
+ {
|
|
|
|
+ dbgassertex(retValue && isValueBinary);
|
|
|
|
+ *isValueBinary = false;
|
|
|
|
+ if (0 == strncmp(name+1, "value", 5)) // this is a special IPT JSON prop name, representing a 'complex' value
|
|
{
|
|
{
|
|
- *isValueBinary = true;
|
|
|
|
- JBASE64_Decode(value.str(), *retValue);
|
|
|
|
- return;
|
|
|
|
|
|
+ if ('\0' == *(name+6)) // #value
|
|
|
|
+ {
|
|
|
|
+ retValue->swapWith(value);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ else if (streq(name+6, "bin")) // #valuebin
|
|
|
|
+ {
|
|
|
|
+ *isValueBinary = true;
|
|
|
|
+ JBASE64_Decode(value.str(), *retValue);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
iEvent->beginNode(name, false, startOffset);
|
|
iEvent->beginNode(name, false, startOffset);
|
|
iEvent->beginNodeContent(name);
|
|
iEvent->beginNodeContent(name);
|
|
iEvent->endNode(name, value.length(), value.str(), false, curOffset);
|
|
iEvent->endNode(name, value.length(), value.str(), false, curOffset);
|