Bug #18782 » 0002-Prevent-race-between-GC-mark-and-autoload-setup.patch
variable.c | ||
---|---|---|
struct autoload_data_i *p = ptr;
|
||
rb_gc_mark_movable(p->feature);
|
||
/* allow GC to free us if no modules refer to this via autoload_const.ad */
|
||
if (ccan_list_empty(&p->constants)) {
|
||
rb_hash_delete(autoload_featuremap, p->feature);
|
||
}
|
||
}
|
||
static void
|
||
... | ... | |
{
|
||
struct autoload_data_i *p = ptr;
|
||
/* we may leak some memory at VM shutdown time, no big deal */
|
||
if (ccan_list_empty(&p->constants)) {
|
||
xfree(p);
|
||
}
|
||
xfree(p);
|
||
}
|
||
static size_t
|