mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Free everything at shutdown
when the RUBY_FREE_ON_SHUTDOWN environment variable is set, manually free memory at shutdown. Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Co-authored-by: Peter Zhu <peter@peterzhu.ca>
This commit is contained in:
parent
b361a800c2
commit
6816e8efcf
27 changed files with 285 additions and 6 deletions
18
encoding.c
18
encoding.c
|
@ -71,6 +71,24 @@ static struct enc_table {
|
|||
st_table *names;
|
||||
} global_enc_table;
|
||||
|
||||
static int
|
||||
enc_names_free_i(st_data_t name, st_data_t idx, st_data_t args)
|
||||
{
|
||||
ruby_xfree((void *)name);
|
||||
return ST_DELETE;
|
||||
}
|
||||
|
||||
void
|
||||
rb_free_global_enc_table(void)
|
||||
{
|
||||
for (size_t i = 0; i < ENCODING_LIST_CAPA; i++) {
|
||||
xfree((void *)global_enc_table.list[i].enc);
|
||||
}
|
||||
|
||||
st_foreach(global_enc_table.names, enc_names_free_i, (st_data_t)0);
|
||||
st_free_table(global_enc_table.names);
|
||||
}
|
||||
|
||||
static rb_encoding *global_enc_ascii,
|
||||
*global_enc_utf_8,
|
||||
*global_enc_us_ascii;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue