diff options
| author | ocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-12-16 08:56:09 +0000 |
|---|---|---|
| committer | ocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-12-16 08:56:09 +0000 |
| commit | 0a14c3d2a636346c7a9e5a1719fc0b298db5d6ea (patch) | |
| tree | e9d7096ebbc4a78cffac58af266b0501bec7bff4 | |
| parent | 7d0323210098665fbbb0f8b6da0459d50b332d39 (diff) | |
| download | ruby-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
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | ext/syck/rubyext.c | 4 |
2 files changed, 9 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Fri Dec 16 17:53:45 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> + + * ext/syck/rubyext.c (rb_syck_compile): fixed memory leak. + + * ext/syck/rubyext.c: should protect global variable from GC. + Fri Dec 16 11:44:43 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> * ext/syck/rubyext.c (syck_resolver_tagurize): fixed memory leak. 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 ); |
