summaryrefslogtreecommitdiff
path: root/ext/mro/mro.xs
Commit message (Collapse)AuthorAgeFilesLines
* In S_mro_get_linear_isa_c3() replace sv_inc() with code for the cases we need.Nicholas Clark2009-09-171-3/+9
|
* gv_efullname3() could return NULL, so mro::_nextcan() must cope (and croak()).Nicholas Clark2009-08-211-3/+8
|
* sv_newmortal() is faster than sv_2mortal(newSV(0))Nicholas Clark2009-08-211-1/+1
|
* Eliminate SV leak in mro::_nextcan - hv_store_ent()'s "key" doesn't take a ref.Nicholas Clark2009-08-211-2/+2
|
* In mro_get_linear_isa_c3() optimise even if AvARRAY(isa_lin) is NULL.Nicholas Clark2009-08-211-1/+1
| | | | | It can only be NULL if AvFILLp(isa_lin) is -1, and the code in the fast path block will work cleanly in that case too.
* Optimise mro_get_linear_isa_c3() when there is a single parent. 40% speed up.Nicholas Clark2009-08-201-1/+41
| | | | Idea blatantly copied from chromatic's analogous change to parrot, r38477.
* Restore full name of mro::mro_invalidate_all_method_caches.Craig A. Berry2009-07-231-1/+1
| | | | | | | It went missing in 1e9bd1186a044d6e3506ed14fbe055b8. See discussion at: Message-ID: <20090722103454.GE60303@plum.flirble.org>
* Improve mro merging error messages.Florian Ragwitz2009-03-281-2/+12
| | | | This makes them very similar to those produced by Algorithm::C3.
* Silence Win32 compiler warnings.Steve Hay2009-01-131-1/+0
|
* Remove duplicate return in S_mro_get_linear_isa_c3() accidentally added byNicholas Clark2009-01-031-1/+0
| | | | fa60396f123333e92849ecaecffb9252458d6678
* In mro_get_mro, use the length and UTF-8-ness now contained in struct mro_algNicholas Clark2008-12-291-3/+8
| | | | when generating an SV containing the name.
* Move all mro:: XS functions from mro.c to ext/mro/mro.xs, except forNicholas Clark2008-12-271-2/+159
| | | | mro::method_changed_in(), which is used by constant.
* Proper pluggable Method Resolution Orders. 'c3' is now implemented outside theNicholas Clark2008-12-271-0/+439
core, in ext/mro/mro.xs. Also move mro::_nextcan() to mro.xs. It needs direct access to S_mro_get_linear_isa_c3(), and nothing on CPAN calls it, except via methods defined in mro.pm. Hence all users already require mro;