diff options
Diffstat (limited to 'node.c')
-rw-r--r-- | node.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -93,6 +93,7 @@ rb_node_buffer_new(void) #define Qtrue ast->node_buffer->config->qtrue #define NIL_P ast->node_buffer->config->nil_p #define rb_hash_aset ast->node_buffer->config->hash_aset +#define rb_hash_delete ast->node_buffer->config->hash_delete #define RB_OBJ_WRITE(old, slot, young) ast->node_buffer->config->obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young)) #endif @@ -458,6 +459,13 @@ rb_ast_add_mark_object(rb_ast_t *ast, VALUE obj) rb_hash_aset(ast->node_buffer->mark_hash, obj, Qtrue); } +void +rb_ast_delete_mark_object(rb_ast_t *ast, VALUE obj) +{ + if (NIL_P(ast->node_buffer->mark_hash)) return; + rb_hash_delete(ast->node_buffer->mark_hash, obj); +} + VALUE rb_ast_tokens(rb_ast_t *ast) { |