Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | In S_mro_get_linear_isa_c3() replace sv_inc() with code for the cases we need. | Nicholas Clark | 2009-09-17 | 1 | -3/+9 |
| | |||||
* | gv_efullname3() could return NULL, so mro::_nextcan() must cope (and croak()). | Nicholas Clark | 2009-08-21 | 1 | -3/+8 |
| | |||||
* | sv_newmortal() is faster than sv_2mortal(newSV(0)) | Nicholas Clark | 2009-08-21 | 1 | -1/+1 |
| | |||||
* | Eliminate SV leak in mro::_nextcan - hv_store_ent()'s "key" doesn't take a ref. | Nicholas Clark | 2009-08-21 | 1 | -2/+2 |
| | |||||
* | In mro_get_linear_isa_c3() optimise even if AvARRAY(isa_lin) is NULL. | Nicholas Clark | 2009-08-21 | 1 | -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 Clark | 2009-08-20 | 1 | -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. Berry | 2009-07-23 | 1 | -1/+1 |
| | | | | | | | It went missing in 1e9bd1186a044d6e3506ed14fbe055b8. See discussion at: Message-ID: <20090722103454.GE60303@plum.flirble.org> | ||||
* | Improve mro merging error messages. | Florian Ragwitz | 2009-03-28 | 1 | -2/+12 |
| | | | | This makes them very similar to those produced by Algorithm::C3. | ||||
* | Silence Win32 compiler warnings. | Steve Hay | 2009-01-13 | 1 | -1/+0 |
| | |||||
* | Remove duplicate return in S_mro_get_linear_isa_c3() accidentally added by | Nicholas Clark | 2009-01-03 | 1 | -1/+0 |
| | | | | fa60396f123333e92849ecaecffb9252458d6678 | ||||
* | In mro_get_mro, use the length and UTF-8-ness now contained in struct mro_alg | Nicholas Clark | 2008-12-29 | 1 | -3/+8 |
| | | | | when generating an SV containing the name. | ||||
* | Move all mro:: XS functions from mro.c to ext/mro/mro.xs, except for | Nicholas Clark | 2008-12-27 | 1 | -2/+159 |
| | | | | mro::method_changed_in(), which is used by constant. | ||||
* | Proper pluggable Method Resolution Orders. 'c3' is now implemented outside the | Nicholas Clark | 2008-12-27 | 1 | -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; |