Create a direct lookup hash for ->isa() lookup, by retaining the
authorNicholas Clark <nick@ccl4.org>
Fri, 12 Sep 2008 00:19:51 +0000 (00:19 +0000)
committerNicholas Clark <nick@ccl4.org>
Fri, 12 Sep 2008 00:19:51 +0000 (00:19 +0000)
commita49ba3fcbe357fbacf7b9898df08daa2cbdfc8c4
tree43834e70391760038633daf86cecae00b95fef4e
parentc109477dfda0dedbe3c4ffa3d6074085d3b8497a
Create a direct lookup hash for ->isa() lookup, by retaining the
de-duping hash used by S_mro_get_linear_isa_dfs(). Provide a new
function Perl_get_isa_hash() to lazily retrieve this. (Which could
actually be static if S_isa_lookup() and Perl_sv_derived_from()
moved into mro.c.) Make S_isa_lookup() use this lookup hash in place
of a linear walk of the linear isa. This should turn isa lookups from
O(n) to O(1), which should make heavy users of ->isa() faster.
(eg PPI, and hence Perl Critic).

p4raw-id: //depot/perl@34354
embed.fnc
hv.c
hv.h
mro.c
proto.h
universal.c