Skip to content

Commit

Permalink
use parrot's new Hash.update method to speed up method cache generation
Browse files Browse the repository at this point in the history
  • Loading branch information
mlschroe committed Oct 18, 2011
1 parent bb30b90 commit 514d0fe
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 17 deletions.
27 changes: 11 additions & 16 deletions src/how/NQPClassHOW.pm
Expand Up @@ -356,10 +356,7 @@ knowhow NQPClassHOW {
@mro_reversed.unshift($_);
}
for @mro_reversed {
my %methods := $_.HOW.method_table($_);
for %methods {
%cache{$_.key} := $_.value;
}
%cache.update($_.HOW.method_table($_));
}
pir::publish_method_cache($obj, %cache);
pir::set_method_cache_authoritativeness__0Pi($obj, 1);
Expand All @@ -377,13 +374,12 @@ knowhow NQPClassHOW {

method publish_parrot_vtable_mapping($obj) {
my %mapping;
my @mro_reversed;
for @!mro {
my %map := $_.HOW.parrot_vtable_mappings($_, :local(1));
for %map {
unless %mapping{$_.key} {
%mapping{$_.key} := $_.value;
}
}
@mro_reversed.unshift($_);
}
for @mro_reversed {
%mapping.update($_.HOW.parrot_vtable_mappings($_, :local(1)));
}
if +%mapping {
pir::stable_publish_vtable_mapping__vPP($obj, %mapping);
Expand All @@ -392,13 +388,12 @@ knowhow NQPClassHOW {

method publish_parrot_vtablee_handler_mapping($obj) {
my %mapping;
my @mro_reversed;
for @!mro {
my %map := $_.HOW.parrot_vtable_handler_mappings($_, :local(1));
for %map {
unless %mapping{$_.key} {
%mapping{$_.key} := $_.value;
}
}
@mro_reversed.unshift($_);
}
for @mro_reversed {
%mapping.update($_.HOW.parrot_vtable_handler_mappings($_, :local(1)));
}
if +%mapping {
pir::stable_publish_vtable_handler_mapping__vPP($obj, %mapping);
Expand Down
2 changes: 1 addition & 1 deletion tools/build/PARROT_REVISION
@@ -1 +1 @@
RELEASE_3_8_0-130-gfad30ea
RELEASE_3_8_0-137-gbf51f45

0 comments on commit 514d0fe

Please sign in to comment.