[svn:parrot] r49362 - branches/generational_gc/lib/Parrot/Pmc2c/PMC

bacek at svn.parrot.org bacek at svn.parrot.org
Tue Sep 28 09:46:21 UTC 2010


Author: bacek
Date: Tue Sep 28 09:46:21 2010
New Revision: 49362
URL: https://trac.parrot.org/parrot/changeset/49362

Log:
Remove special handling of default.find_method. It's not marked as writable, so there is no need to handle it specially

Modified:
   branches/generational_gc/lib/Parrot/Pmc2c/PMC/default.pm

Modified: branches/generational_gc/lib/Parrot/Pmc2c/PMC/default.pm
==============================================================================
--- branches/generational_gc/lib/Parrot/Pmc2c/PMC/default.pm	Tue Sep 28 09:46:05 2010	(r49361)
+++ branches/generational_gc/lib/Parrot/Pmc2c/PMC/default.pm	Tue Sep 28 09:46:21 2010	(r49362)
@@ -51,20 +51,6 @@
     $ro->{emitter} = $self->{emitter};
     foreach my $method ( @{ $self->vtable->methods } ) {
         my $vt_method_name = $method->name;
-        if ($vt_method_name eq 'find_method' && $self->name ne 'default_wb') {
-            # Generate default_ro_find_method.
-            $self->{emitter}->emit(<<'EOC');
-static  PMC *
-Parrot_default_ro_find_method(PARROT_INTERP, PMC *_self, STRING *method_name) {
-    /* Use non-readonly find_method. Current vtable is ro variant. So ro_variant contains non-ro variant */
-    PMC *const method = _self->vtable->ro_variant_vtable->find_method(interp, _self, method_name);
-    if (!PMC_IS_NULL(VTABLE_getprop(interp, method, CONST_STRING_GEN(interp, "write"))))
-        return PMCNULL;
-    else
-        return method;
-}
-EOC
-        }
         if ( $self->vtable_method_does_write($vt_method_name) ) {
             my $m = $self->_generate_default_method($ro, $method, 'cant_do_write_method');
             $m->generate_body($ro);
@@ -125,7 +111,7 @@
     # Generate RO version of default VTABLE.
     my $ro_vtable_decl = '';
     foreach my $name ( @{ $self->vtable->names } ) {
-        if ($self->vtable_method_does_write($name) || ($name eq 'find_method')) {
+        if ($self->vtable_method_does_write($name)) {
             $ro_vtable_decl .= "    vt->$name = Parrot_default_ro_${name};\n";
         }
     }


More information about the parrot-commits mailing list