Skip to content

Commit 6ec1395

Browse files
committed
[json] provide workaround for TStyle::fLineStyle member
it has similar name as field in TAttLine and produces duplicated members in JSON. This makes impossible to correctly read it back
1 parent d8cd26a commit 6ec1395

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

io/io/src/TBufferJSON.cxx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,8 +1218,14 @@ void TBufferJSON::JsonStartElement(const TStreamerElement *elem, const TClass *b
12181218

12191219
switch (special_kind) {
12201220
case 0:
1221-
if (!base_class)
1222-
elem_name = elem->GetName();
1221+
if (base_class) return;
1222+
elem_name = elem->GetName();
1223+
if (strcmp(elem_name,"fLineStyle") == 0)
1224+
if ((strcmp(elem->GetTypeName(),"TString") == 0) && (strcmp(elem->GetFullName(),"fLineStyle[30]") == 0)) {
1225+
auto st1 = fStack.at(fStack.size() - 2).get();
1226+
if (st1->IsStreamerInfo() && st1->fInfo && (strcmp(st1->fInfo->GetName(),"TStyle") == 0))
1227+
elem_name = "fLineStyles";
1228+
}
12231229
break;
12241230
case TClassEdit::kVector: elem_name = "fVector"; break;
12251231
case TClassEdit::kList: elem_name = "fList"; break;

0 commit comments

Comments
 (0)