Skip to content

Commit 514d0fe

Browse files
committed
use parrot's new Hash.update method to speed up method cache generation
1 parent bb30b90 commit 514d0fe

File tree

2 files changed

+12
-17
lines changed

2 files changed

+12
-17
lines changed

src/how/NQPClassHOW.pm

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -356,10 +356,7 @@ knowhow NQPClassHOW {
356356
@mro_reversed.unshift($_);
357357
}
358358
for @mro_reversed {
359-
my %methods := $_.HOW.method_table($_);
360-
for %methods {
361-
%cache{$_.key} := $_.value;
362-
}
359+
%cache.update($_.HOW.method_table($_));
363360
}
364361
pir::publish_method_cache($obj, %cache);
365362
pir::set_method_cache_authoritativeness__0Pi($obj, 1);
@@ -377,13 +374,12 @@ knowhow NQPClassHOW {
377374

378375
method publish_parrot_vtable_mapping($obj) {
379376
my %mapping;
377+
my @mro_reversed;
380378
for @!mro {
381-
my %map := $_.HOW.parrot_vtable_mappings($_, :local(1));
382-
for %map {
383-
unless %mapping{$_.key} {
384-
%mapping{$_.key} := $_.value;
385-
}
386-
}
379+
@mro_reversed.unshift($_);
380+
}
381+
for @mro_reversed {
382+
%mapping.update($_.HOW.parrot_vtable_mappings($_, :local(1)));
387383
}
388384
if +%mapping {
389385
pir::stable_publish_vtable_mapping__vPP($obj, %mapping);
@@ -392,13 +388,12 @@ knowhow NQPClassHOW {
392388

393389
method publish_parrot_vtablee_handler_mapping($obj) {
394390
my %mapping;
391+
my @mro_reversed;
395392
for @!mro {
396-
my %map := $_.HOW.parrot_vtable_handler_mappings($_, :local(1));
397-
for %map {
398-
unless %mapping{$_.key} {
399-
%mapping{$_.key} := $_.value;
400-
}
401-
}
393+
@mro_reversed.unshift($_);
394+
}
395+
for @mro_reversed {
396+
%mapping.update($_.HOW.parrot_vtable_handler_mappings($_, :local(1)));
402397
}
403398
if +%mapping {
404399
pir::stable_publish_vtable_handler_mapping__vPP($obj, %mapping);

tools/build/PARROT_REVISION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
RELEASE_3_8_0-130-gfad30ea
1+
RELEASE_3_8_0-137-gbf51f45

0 commit comments

Comments
 (0)