Skip to content

Commit 1e8b467

Browse files
pcanaldpiparo
authored andcommitted
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 95fd530 commit 1e8b467

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
@@ -3101,6 +3101,10 @@ TClass *TClass::GetClass(const char *name, Bool_t load, Bool_t silent, size_t hi
31013101
loadedcl = LoadClassDefault(normalizedName.c_str(),silent);
31023102
} else {
31033103
if (gInterpreter->AutoLoad(normalizedName.c_str(),kTRUE)) {
3104+
// Check if we just loaded the necessary dictionary.
3105+
loadedcl = LoadClassDefault(normalizedName.c_str(), silent);
3106+
if (loadedcl)
3107+
return loadedcl;
31043108
// At this point more information has been loaded. This
31053109
// information might be pertinent to the normalization of the name.
31063110
// For example it might contain or be a typedef for which we don't

0 commit comments

Comments
 (0)