Revision ecb4f6450462f6a8cbd3311c748ded2d90359ceb authored by Philippe Canal on 19 October 2020, 21:31:39 UTC, committed by Philippe Canal on 05 October 2022, 17:08:22 UTC
The problem was due the introduction (in commit f3f0f13) of a fast path in TClass::GetListOfDataMember which did not take in consideration the case: c = GetClass(someclassname) c->GetState() == TClass::kForwardDeclared c->GetListOfDataMember() -> list is now created but empty. load and parse header file for c->GetState() == TClass::kInterpreted c->GetListOfDataMember() -> list is still empty but should have been filled (loaded at this point). The logic assumed incorrectly that if someclassname was indeed pointing to a class or struct and the list was created then it was loaded. To keep the fast path and correct the logic, we need to 'promote' TListOfDataMembers::fIsLoaded to be an std::atomic
1 parent a2e9e8e
File | Mode | Size |
---|---|---|
.ci | ||
.github | ||
README | ||
bindings | ||
build | ||
builtins | ||
cmake | ||
config | ||
core | ||
doc | ||
documentation | ||
etc | ||
fonts | ||
geom | ||
graf2d | ||
graf3d | ||
gui | ||
hist | ||
html | ||
icons | ||
interpreter | ||
io | ||
js | ||
macros | ||
main | ||
man | ||
math | ||
misc | ||
montecarlo | ||
net | ||
proof | ||
roofit | ||
rootx | ||
sql | ||
test | ||
tmva | ||
tree | ||
tutorials | ||
ui5 | ||
.clang-format | -rw-r--r-- | 3.4 KB |
.clang-tidy | -rw-r--r-- | 22 bytes |
.gitattributes | -rw-r--r-- | 440 bytes |
.gitignore | -rw-r--r-- | 296 bytes |
.mailmap | -rw-r--r-- | 9.6 KB |
.travis.yml | -rw-r--r-- | 2.0 KB |
CMakeLists.txt | -rw-r--r-- | 27.2 KB |
CONTRIBUTING.md | -rw-r--r-- | 2.4 KB |
LGPL2_1.txt | -rw-r--r-- | 23.9 KB |
LICENSE | -rw-r--r-- | 847 bytes |
README.md | -rw-r--r-- | 5.0 KB |
configure | -rwxr-xr-x | 182 bytes |
Computing file changes ...