Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open too many different non-versioned layouts for pair #10131

Closed
pcanal opened this issue Mar 15, 2022 · 1 comment · Fixed by #10132 or #10230
Closed

Open too many different non-versioned layouts for pair #10131

pcanal opened this issue Mar 15, 2022 · 1 comment · Fixed by #10132 or #10230

Comments

@pcanal
Copy link
Member

pcanal commented Mar 15, 2022

As reported originally at: cms-sw/cmssw#37113, TClass/TStreamerInfo can complain that they are too many StreamerInfo for an std::class.

@pcanal pcanal added the bug label Mar 15, 2022
@pcanal
Copy link
Member Author

pcanal commented Mar 15, 2022

The core issue is that TDataMember::Init and TStreamerInfo::GenerateInfoForPair were not consistent. TDataMember::Init was ignoring the underlying type of an enum while the newer TStreamerInfo::GenerateInfoForPair was taking it in consideration. In the reported case, it meant that some of the pair's TStreamerInfo recorded the type as being 'signed intwhile other was recording the type asunsigned int`.

In addition the whole infrastructure assumed (but only in "some/most" places) that the TStreamerInfo for a std::pair could never change and the infrastructure was also inconsistent on knowing whether the schema layout for std::pair is version of non-versioned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment