summaryrefslogtreecommitdiffstats
path: root/ext/syck
diff options
context:
space:
mode:
authorocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-12-16 08:56:09 +0000
committerocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-12-16 08:56:09 +0000
commit0a14c3d2a636346c7a9e5a1719fc0b298db5d6ea (patch)
treee9d7096ebbc4a78cffac58af266b0501bec7bff4 /ext/syck
parent7d0323210098665fbbb0f8b6da0459d50b332d39 (diff)
downloadruby-0a14c3d2a636346c7a9e5a1719fc0b298db5d6ea.tar.gz
ruby-0a14c3d2a636346c7a9e5a1719fc0b298db5d6ea.tar.xz
ruby-0a14c3d2a636346c7a9e5a1719fc0b298db5d6ea.zip
* ext/syck/rubyext.c (rb_syck_compile): fixed memory leak.
* ext/syck/rubyext.c: should protect global variable from GC. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/syck')
-rw-r--r--ext/syck/rubyext.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c
index 22cbbaf55..f9bb91bf4 100644
--- a/ext/syck/rubyext.c
+++ b/ext/syck/rubyext.c
@@ -122,7 +122,7 @@ rb_syck_compile(self, port)
syck_free_parser( parser );
- bc = rb_str_new2( ret );
+ bc = rb_str_new2( ret ); S_FREE( ret );
if ( taint ) OBJ_TAINT( bc );
return bc;
}
@@ -2264,10 +2264,12 @@ Init_syck()
rb_define_method( cResolver, "node_import", syck_resolver_node_import, 1 );
rb_define_method( cResolver, "tagurize", syck_resolver_tagurize, 1 );
+ rb_global_variable( &oDefaultResolver );
oDefaultResolver = rb_funcall( cResolver, rb_intern( "new" ), 0 );
rb_define_singleton_method( oDefaultResolver, "node_import", syck_defaultresolver_node_import, 1 );
rb_define_singleton_method( oDefaultResolver, "detect_implicit", syck_defaultresolver_detect_implicit, 1 );
rb_define_const( rb_syck, "DefaultResolver", oDefaultResolver );
+ rb_global_variable( &oGenericResolver );
oGenericResolver = rb_funcall( cResolver, rb_intern( "new" ), 0 );
rb_define_singleton_method( oGenericResolver, "node_import", syck_genericresolver_node_import, 1 );
rb_define_const( rb_syck, "GenericResolver", oGenericResolver );