d1cff7974a
When a registered class has a non-registered superclass, rna_info.BuildRNAInfo entered an eternal loop. The while loop in `rna_info.get_py_class_from_rna` was not mutating the variables within the loop nor the variable in its condition, meaning it would loop infinitely if the loop didn't exit in its first iteration. When yielding registered classes in `subclasses_recurse`, the function was erroneously checking if the class' superclass was registered rather than checking the class itself, causing registered classes to be skipped if their superclass was not also registered. If the class to be found was skipped, the while loop would not exit in its first iteration and would thus loop infinitely. The while loop has been modified to iterate through each base rna type until there is no further base type. The `subclasses_recurse` function now correctly checks whether the subclass is registered, not its superclass, when determining if the subclass should be yielded. Besides the fix, no functional changes are expected, the generated Python API docs remain unchanged. Ref: !108256