summaryrefslogtreecommitdiff
path: root/ruby_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_parser.c')
-rw-r--r--ruby_parser.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/ruby_parser.c b/ruby_parser.c
index 63cd8df814..40b7e18aca 100644
--- a/ruby_parser.c
+++ b/ruby_parser.c
@@ -758,9 +758,7 @@ static void
ast_free(void *ptr)
{
rb_ast_t *ast = (rb_ast_t *)ptr;
- if (ast) {
- rb_ast_free(ast);
- }
+ rb_ast_free(ast);
}
static const rb_data_type_t ast_data_type = {
@@ -777,7 +775,12 @@ static VALUE
ast_alloc(void)
{
rb_ast_t *ast;
- return TypedData_Make_Struct(0, rb_ast_t, &ast_data_type, ast);
+ VALUE vast = TypedData_Make_Struct(0, rb_ast_t, &ast_data_type, ast);
+#ifdef UNIVERSAL_PARSER
+ ast = (rb_ast_t *)DATA_PTR(vast);
+ ast->config = &rb_global_parser_config;
+#endif
+ return vast;
}
VALUE