Skip to content

Commit 5eddd6f

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 #17992 and cms-sw/cmssw#47470
1 parent 37fe629 commit 5eddd6f

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
@@ -3170,6 +3170,10 @@ TClass *TClass::GetClass(const char *name, Bool_t load, Bool_t silent, size_t hi
31703170
loadedcl = LoadClassDefault(normalizedName.c_str(),silent);
31713171
} else {
31723172
if (gInterpreter->AutoLoad(normalizedName.c_str(),kTRUE)) {
3173+
// Check if we just loaded the necessary dictionary.
3174+
loadedcl = LoadClassDefault(normalizedName.c_str(), silent);
3175+
if (loadedcl)
3176+
return loadedcl;
31733177
// At this point more information has been loaded. This
31743178
// information might be pertinent to the normalization of the name.
31753179
// For example it might contain or be a typedef for which we don't

0 commit comments

Comments
 (0)