From 5924f9a684ace630d3658a0d6e52270e3686ca9f Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 29 May 2015 05:44:01 +0000 Subject: psych: allocate structs with wrapper * ext/psych/psych_emitter.c (allocate): allocate structs with making new wrapper objects and get rid of potential memory leak. * ext/psych/psych_parser.c (allocate): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/psych/psych_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ext/psych/psych_parser.c') diff --git a/ext/psych/psych_parser.c b/ext/psych/psych_parser.c index faae460dd0..2caa8a09c3 100644 --- a/ext/psych/psych_parser.c +++ b/ext/psych/psych_parser.c @@ -70,11 +70,11 @@ static const rb_data_type_t psych_parser_type = { static VALUE allocate(VALUE klass) { yaml_parser_t * parser; + VALUE obj = TypedData_Make_Struct(klass, yaml_parser_t, &psych_parser_type, parser); - parser = xmalloc(sizeof(yaml_parser_t)); yaml_parser_initialize(parser); - return TypedData_Wrap_Struct(klass, &psych_parser_type, parser); + return obj; } static VALUE make_exception(yaml_parser_t * parser, VALUE path) -- cgit v1.2.3