-
- Downloads
[metacling] Remember which classes were DeepAutoLoad-ed in this AutoLoad:
ROOT-10895 suffers from trying to autoload 220 classes, but causing >80k calls to DeepAutoLoadImpl(). Within one call to AutoLoad(), no new information can arrive that would allow later recursions of DeepAutoLoadImpl() to now autoload a class successfully. So whether autoloading a class successfully or not, any class on which DeepAutoLoadImpl() was called does not need to be re-visited within the same AutoLoad() call. To achieve that, remember the class names that have been visited already, bringing the count to (non-early-return) DeepAutoLoadImpl() to the actual number of classes that we should try to autoload. And a perf-opt: do not determine type names if the type is fundamental. And I'm not a big fan of deep code nesting.
Loading
Please register or sign in to comment