From 263078826edbcd28c45f94f663c5ac3395c87ebe Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 16 May 2015 12:56:48 +0000 Subject: allocate structs with wrapper * parse.y (rb_parser_new, ripper_s_allocate): allocate structs with making new wrapper objects and get rid of potential memory leak. * variable.c (rb_autoload): ditto. * ext/digest/digest.c (rb_digest_base_alloc): ditto. * ext/strscan/strscan.c (strscan_s_allocate): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- variable.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'variable.c') diff --git a/variable.c b/variable.c index 9b5a326492..8514c5ea72 100644 --- a/variable.c +++ b/variable.c @@ -1682,12 +1682,11 @@ rb_autoload(VALUE mod, ID id, const char *file) FL_UNSET(fn, FL_TAINT); OBJ_FREEZE(fn); - ele = ALLOC(struct autoload_data_i); + ad = TypedData_Make_Struct(0, struct autoload_data_i, &autoload_data_i_type, ele); ele->feature = fn; ele->safe_level = rb_safe_level(); ele->thread = Qnil; ele->value = Qundef; - ad = TypedData_Wrap_Struct(0, &autoload_data_i_type, ele); st_insert(tbl, (st_data_t)id, (st_data_t)ad); } -- cgit v1.2.3