Skip to content

Commit 788a564

Browse files
committed
[meta] Don't redo Property if no new information.
It is re-run if the first time we ran it, it did not have the full information (i.e. no dictionary nor any interpreter info; this happens for forward classes and STL collections).
1 parent 5d72387 commit 788a564

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

core/meta/src/TClass.cxx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6099,6 +6099,14 @@ Long_t TClass::Property() const
60996099
// Avoid asking about the class when it is still building
61006100
if (TestBit(kLoading)) return fProperty;
61016101

6102+
if (fStreamerType != kDefault && !HasInterpreterInfo()) {
6103+
// We have no interpreter information but we already set the streamer type
6104+
// so we have already been here and have no new information, then let's
6105+
// give up. See the code at this end of this routine (else branch of the
6106+
// `if (HasInterpreterInfo()` for the path we took before.
6107+
return 0;
6108+
}
6109+
61026110
// When called via TMapFile (e.g. Update()) make sure that the dictionary
61036111
// gets allocated on the heap and not in the mapped file.
61046112
TMmallocDescTemp setreset;

0 commit comments

Comments
 (0)