diff options
| author | ocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-12-19 14:13:27 +0000 |
|---|---|---|
| committer | ocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-12-19 14:13:27 +0000 |
| commit | d7ef0e1264641d2d5a0a20a10427a0b3b8c4adbe (patch) | |
| tree | 6b1fb676554c5c614b9a4e1bb5a9e71972e23af7 /ChangeLog | |
| parent | 93a405bdba075600b36f3ceef2b2ff94a119369c (diff) | |
| download | ruby-d7ef0e1264641d2d5a0a20a10427a0b3b8c4adbe.tar.gz ruby-d7ef0e1264641d2d5a0a20a10427a0b3b8c4adbe.tar.xz ruby-d7ef0e1264641d2d5a0a20a10427a0b3b8c4adbe.zip | |
* 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.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ChangeLog')
| -rw-r--r-- | ChangeLog | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -5,6 +5,36 @@ Mon Dec 19 23:09:24 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> SyckParser's hash table. if GC occurs in st_insert, it's not under SyckParser's mark system yet. so RString can be released wrongly. + * 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. + Mon Dec 19 12:20:59 2005 Tanaka Akira <akr@m17n.org> * eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): activate only |
