@@ -43,6 +43,19 @@ pmclass NQPLexInfo provides hash auto_attrs dynpmc group nqp {
43
43
PObj_custom_mark_SET(SELF);
44
44
}
45
45
46
+ VTABLE void mark() {
47
+ PMC *name_to_register_map, *static_values;
48
+ PMC *static_slots_cache, *static_values_cache;
49
+ GET_ATTR_name_to_register_map(INTERP, SELF, name_to_register_map);
50
+ Parrot_gc_mark_PMC_alive(INTERP, name_to_register_map);
51
+ GET_ATTR_static_values(INTERP, SELF, static_values);
52
+ Parrot_gc_mark_PMC_alive(INTERP, static_values);
53
+ GET_ATTR_static_slots_cache(INTERP, SELF, static_slots_cache);
54
+ Parrot_gc_mark_PMC_alive(INTERP, static_slots_cache);
55
+ GET_ATTR_static_values_cache(INTERP, SELF, static_values_cache);
56
+ Parrot_gc_mark_PMC_alive(INTERP, static_values_cache);
57
+ }
58
+
46
59
VTABLE INTVAL get_integer_keyed_str(STRING *key) {
47
60
PMC *name_to_register_map;
48
61
GET_ATTR_name_to_register_map(INTERP, SELF, name_to_register_map);
@@ -60,6 +73,22 @@ pmclass NQPLexInfo provides hash auto_attrs dynpmc group nqp {
60
73
GET_ATTR_name_to_register_map(INTERP, SELF, name_to_register_map);
61
74
VTABLE_set_integer_keyed_str(interp, name_to_register_map, key, value);
62
75
}
76
+
77
+ VTABLE void visit(PMC *info) {
78
+ VISIT_PMC_ATTR(INTERP, info, SELF, NQPLexInfo, name_to_register_map);
79
+ VISIT_PMC_ATTR(INTERP, info, SELF, NQPLexInfo, static_values);
80
+ VISIT_PMC_ATTR(INTERP, info, SELF, NQPLexInfo, static_slots_cache);
81
+ VISIT_PMC_ATTR(INTERP, info, SELF, NQPLexInfo, static_values_cache);
82
+ SUPER(info);
83
+ }
84
+
85
+ VTABLE void freeze(PMC *info) {
86
+ SUPER(info);
87
+ }
88
+
89
+ VTABLE void thaw(PMC *info) {
90
+ SUPER(info);
91
+ }
63
92
64
93
/*
65
94
0 commit comments