summaryrefslogtreecommitdiff
path: root/node.c
diff options
context:
space:
mode:
Diffstat (limited to 'node.c')
-rw-r--r--node.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/node.c b/node.c
index 975ed9264f..f76e10e69b 100644
--- a/node.c
+++ b/node.c
@@ -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)
{