[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