Skip to content

Commit 3812e5e

Browse files
committed
meta: After autoload, immediately check TClassTable.
If a library was loaded, the alias for a class were also loaded and a non normalized name might lead to a match. If we skip this check, then the next step will normalized the name and check for typedef inside the name (if it is a template instance name) and if the name are not found as is, it may lead to loading the header file. ie. this fixes root-project#17992 and cms-sw/cmssw#47470
1 parent adc4b00 commit 3812e5e

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

core/meta/src/TClass.cxx

+4
Original file line numberDiff line numberDiff line change
@@ -3202,6 +3202,10 @@ TClass *TClass::GetClass(const char *name, Bool_t load, Bool_t silent, size_t hi
32023202
loadedcl = LoadClassDefault(normalizedName.c_str(),silent);
32033203
} else {
32043204
if (gInterpreter->AutoLoad(normalizedName.c_str(),kTRUE)) {
3205+
// Check if we just loaded the necessary dictionary.
3206+
loadedcl = LoadClassDefault(normalizedName.c_str(), silent);
3207+
if (loadedcl)
3208+
return loadedcl;
32053209
// At this point more information has been loaded. This
32063210
// information might be pertinent to the normalization of the name.
32073211
// For example it might contain or be a typedef for which we don't

0 commit comments

Comments
 (0)