with previous Ruby versions, documents are no longer headless.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* main.c (always_gc): dllimport is required for VC to import a DLL
symbol. fixed: [ruby-dev:28051]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@9713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
in gram.c to insert node from rb_syck_bad_anchor_handler into
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.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
allocated memory instead of RString's internal storage" stuff.
node allocated in rubyext.c seems to be freed by rb_syck_free_node
not syck_free_node, and it won't free data.str->ptr and type_id.
(I still think this is unsafe because RString(foo)->ptr becomes
dangling pointer when RString is modified or freed, but anyway
I misunderstood, so go back to original code for now)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
emitter->bonus->oid. otherwise rb_gc_mark crashes.
* ext/syck/rubyext.c (syck_mark_parser): should mark anchor nodes
because they hold ruby objects. (ie: rb_syck_bad_anchor_handler)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/syck/rubyext.c: should protect global variable from GC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/syck/rubyext.c (syck_node_type_id_set): should set newly
allocated memory instead of RString's internal storage.
... these fixes won't fix [ruby-dev:27839]. more work is needed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
gcc 3.3.5 (Debian 1:3.3.5-13).
When rb_ary_push is called, there was no register which contains
`hash' but `&RHASH(hash)->tbl' instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
method name might be changed. thanks to takano32 at
http://www.rubyist.net/~matz/20051210.html#c08 for name
suggestion. [ruby-talk:167182]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
protect temporary context object. [ruby-dev:27979]
* ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should
be called before actual variable initialization.
[ruby-dev:27986]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ActiveTcl8.4.12.0.
* ext/tk/lib/tkextlib/tile/tnotebook.rb: add Tk::Tile::TNotebook#insert.
* ext/tk/sample/tkextlib/tile/demo.rb: improve the look of a part of the demo.
* ext/tk/sample/scrollframe.rb: add a new sample.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e