mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Make rb_ast_dispose
use RB_OBJ_WRITE
This fixes the mistake of r60722. I used `rb_gc_writebarrier_remember` to notify to GC that the references is changed. But the function just adds the object to the remember set blindly. Ko1 told me that `RB_OBJ_WRITE` is suitable in this case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4d60654690
commit
139eb4e862
1 changed files with 5 additions and 5 deletions
10
node.c
10
node.c
|
@ -1147,17 +1147,17 @@ rb_ast_mark(rb_ast_t *ast)
|
|||
void
|
||||
rb_ast_free(rb_ast_t *ast)
|
||||
{
|
||||
if (ast->node_buffer) rb_node_buffer_free(ast->node_buffer);
|
||||
ast->node_buffer = 0;
|
||||
ast->root = 0;
|
||||
ast->mark_ary = 0;
|
||||
if (ast->node_buffer) {
|
||||
rb_node_buffer_free(ast->node_buffer);
|
||||
ast->node_buffer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
rb_ast_dispose(rb_ast_t *ast)
|
||||
{
|
||||
rb_ast_free(ast);
|
||||
rb_gc_writebarrier_remember((VALUE)ast);
|
||||
RB_OBJ_WRITE(ast, &ast->mark_ary, Qnil);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in a new issue