File tree Expand file tree Collapse file tree 2 files changed +7
-2
lines changed Expand file tree Collapse file tree 2 files changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -88,6 +88,10 @@ Caml_inline int is_marked(value v) {
88
88
return Has_status_val (v , caml_global_heap_state .MARKED );
89
89
}
90
90
91
+ Caml_inline int is_not_markable (value v ) {
92
+ return Has_status_val (v , NOT_MARKABLE );
93
+ }
94
+
91
95
void caml_redarken_pool (struct pool * , scanning_action , void * );
92
96
93
97
intnat caml_sweep (struct caml_heap_state * , intnat );
Original file line number Diff line number Diff line change @@ -167,8 +167,9 @@ void caml_ephe_clean (value v) {
167
167
else if (Is_block (child ) && !Is_young (child )) {
168
168
if (Tag_val (child ) == Infix_tag ) child -= Infix_offset_val (child );
169
169
/* If we scanned all the keys and the data field remains filled,
170
- then the mark phase must have marked it */
171
- CAMLassert ( is_marked (child ) );
170
+ then the mark phase must have marked it (or alternatively the
171
+ value concerned is in static data etc). */
172
+ CAMLassert ( is_marked (child ) || is_not_markable (child ) );
172
173
}
173
174
#endif
174
175
}
You can’t perform that action at this time.
0 commit comments