[svn:parrot] r38847 - trunk/src
chromatic at svn.parrot.org
chromatic at svn.parrot.org
Sat May 16 21:07:45 UTC 2009
Author: chromatic
Date: Sat May 16 21:07:44 2009
New Revision: 38847
URL: https://trac.parrot.org/parrot/changeset/38847
Log:
[oo] Fixed a semi-predicate problem in
Parrot_oo_find_vtable_override_for_class(), where the function ignored the
cached absence of a VTABLE override. Respecting the case where Parrot's
already performed the lookup and found no override improves the Rakudo-building
benchmark by 10.42%. The improvement is similar in other heavily OO code.
Modified:
trunk/src/oo.c
Modified: trunk/src/oo.c
==============================================================================
--- trunk/src/oo.c Sat May 16 21:01:15 2009 (r38846)
+++ trunk/src/oo.c Sat May 16 21:07:44 2009 (r38847)
@@ -371,6 +371,8 @@
if (!PMC_IS_NULL(result))
return result;
+ else if (VTABLE_exists_keyed_str(interp, _class->parent_overrides, name))
+ return PMCNULL;
else {
/* Walk and search for the vtable method. */
const INTVAL num_classes = VTABLE_elements(interp, _class->all_parents);
More information about the parrot-commits
mailing list