ruby-cvs:16176
From: (ocean) <ocean ruby-lang.org>
Date: Mon, 19 Dec 2005 23:13:28 +0900
Subject: [ruby-cvs:16176] ruby, ruby/ext/syck: * ext/syck/syck.h (S_FREE): small hack. no need to check if pointer is
ocean Mon, 19 Dec 2005 23:13:28 +0900
Modified files:
ruby:
ChangeLog
ruby/ext/syck:
rubyext.c syck.h
Log:
* ext/syck/syck.h (S_FREE): small hack. no need to check if pointer is
NULL or not before S_FREE.
* ext/syck/rubyext.c (syck_parser_assign_io): rb_check_string_type can
return new RString. if so, it becomes unreachable from GC after
returns syck_parser_assign_io, and can be freed by GC. (dangling
in syck io system) so extends its life time till syck_parse is called.
* ext/syck/rubyext.c (syck_parser_s_alloc): always allocates bonus,
so no need to check if NULL, and "volatile VALUE hash"
is not needed. (bonus->port was not protected in syck_emitter_reset)
* ext/syck/rubyext.c (syck_mark_parser): ditto.
* ext/syck/rubyext.c (syck_parser_load): ditto.
* ext/syck/rubyext.c (syck_parser_load_documents): ditto.
* ext/syck/rubyext.c (syck_emitter_s_alloc): ditto.
* ext/syck/rubyext.c (syck_mark_emitter): ditto.
* ext/syck/rubyext.c (syck_emitter_reset): ditto.
* ext/syck/rubyext.c (syck_scalar_value_set): "should set newly
allocated memory instead of RString's internal storage" stuff again.
by this, should call syck_free_node instead of rb_syck_free_node.
* ext/syck/rubyext.c (syck_node_type_id_set): ditto.
Revision Changes Path
1.4852 +30 -0 ruby/ChangeLog
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ChangeLog?cvsroot=src&r1=1.4851&r2=1.4852
1.61 +44 -93 ruby/ext/syck/rubyext.c
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ext/syck/rubyext.c?cvsroot=src&r1=1.60&r2=1.61
1.30 +3 -3 ruby/ext/syck/syck.h
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ext/syck/syck.h?cvsroot=src&r1=1.29&r2=1.30