Skip to content

Commit

Permalink
Avoid setting fCollProxy multiple times.
Browse files Browse the repository at this point in the history
GetCollectionProxy during the setting of fCollProxy calls
TBranchElement::GetInfoImp that in some cases sets fCollProxy
and ends up recording it (sometimes) in the action sequence.
When GetCollectionProxy sets it too (i.e. change it) there is
now a disconnect between the branch and the action sequences that
lead to the action sequence to used an unset collection proxy:

  Fatal in <TGenCollectionProxy>: Size> Logic error - no proxy object set.
  aborting
  • Loading branch information
pcanal committed Mar 20, 2019
1 parent 469ef92 commit 8a30e1b
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tree/tree/src/TBranchElement.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2403,6 +2403,14 @@ TVirtualCollectionProxy* TBranchElement::GetCollectionProxy()
} else {
// We are not a top-level branch.
TVirtualStreamerInfo* si = thiscast->GetInfoImp();
if (fCollProxy) {
// The GetInfo set fProxy for us, let's not
// redo it; the value of fCollProxy is possibly
// used/recorded is the actions sequences, so
// if we change it here, we would need to propagate
// the change.
return fCollProxy;
}
TStreamerElement* se = si->GetElement(fID);
cl = se->GetClassPointer();
}
Expand Down

0 comments on commit 8a30e1b

Please sign in to comment.