diff options
author | John Hawthorn <john@hawthorn.email> | 2022-02-18 23:05:23 -0800 |
---|---|---|
committer | John Hawthorn <john@hawthorn.email> | 2022-03-10 09:34:08 -0800 |
commit | 1b15756d24c11ed6bfddb5ae53402a071a20ea97 (patch) | |
tree | 82102755afc808a6b77dbdc270d541184b8705c6 /ccan | |
parent | 67faea970857c292ae35dadd103287d4f4449a58 (diff) | |
download | ruby-1b15756d24c11ed6bfddb5ae53402a071a20ea97.tar.gz |
Fast object is iclass checks
Calling rb_obj_is_kind_of with an ICLASS returns the same result as
calling it with the ICLASS's original Module.
Most of the time we encounter an ICLASS here checking the validity of a
protected method or super call, which we expect to return true (or raise
a slow exception anyways). We can take advantage of this by performing a
fast class inheritance check on the ICLASS's "includer" in hopes that it
returns true.
If the includer class check returns false we still have to fallback to
the full inheritance chain scan for the module's inclusion, but this
should be less common.
Diffstat (limited to 'ccan')
0 files changed, 0 insertions, 0 deletions