Reproduction script:

```
require "ripper"

10.times do
  20_000.times do
    Ripper.parse("")
  end

  puts `ps -o rss= -p #{$$}`
end
```

Before:

```
28032
34432
40704
47232
53632
60032
66432
72832
79232
85632
```

After:

```
21760
21760
21760
21760
21760
21760
21760
21760
21760
21760
```
This commit is contained in:
Peter Zhu 2023-09-29 13:45:25 -04:00
Родитель f88f5b59e8
Коммит 97564ddf2b
1 изменённых файлов: 4 добавлений и 0 удалений

4
node.c
Просмотреть файл

@ -154,6 +154,10 @@ node_buffer_list_free(rb_ast_t *ast, node_buffer_list_t * nb)
nbe = nbe->next;
xfree(buf);
}
/* The last node_buffer_elem_t is allocated in the node_buffer_t, so we
* only need to free the nodes. */
xfree(nbe->nodes);
}
struct rb_ast_local_table_link {