File tree Expand file tree Collapse file tree 1 file changed +18
-1
lines changed Expand file tree Collapse file tree 1 file changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -152,7 +152,7 @@ knowhow NQPClassHOW {
152
152
153
153
# Install Parrot v-table mapping.
154
154
if + % ! parrot_vtable_mapping {
155
- pir::stable_publish_vtable_mapping__vPP ($ obj , % ! parrot_vtable_mapping );
155
+ self . publish_parrot_vtable_mapping ($ obj );
156
156
}
157
157
158
158
$ obj
@@ -322,6 +322,19 @@ knowhow NQPClassHOW {
322
322
pir::publish_method_cache($ obj , % cache )
323
323
}
324
324
325
+ method publish_parrot_vtable_mapping ($ obj ) {
326
+ my % mapping ;
327
+ for @ ! mro {
328
+ my % map := $ _ . HOW . parrot_vtable_mappings($ _ , : local(1 ));
329
+ for % map {
330
+ unless % mapping {$ _ . key } {
331
+ % mapping {$ _ . key } := $ _ . value ;
332
+ }
333
+ }
334
+ }
335
+ pir::stable_publish_vtable_mapping__vPP($ obj , % mapping );
336
+ }
337
+
325
338
# #
326
339
# # Introspecty
327
340
# #
@@ -358,6 +371,10 @@ knowhow NQPClassHOW {
358
371
@ attrs
359
372
}
360
373
374
+ method parrot_vtable_mappings ($ obj , : $ local ! ) {
375
+ % ! parrot_vtable_mapping
376
+ }
377
+
361
378
# #
362
379
# # Checky
363
380
# #
You can’t perform that action at this time.
0 commit comments