* ext/syck/rubyext.c (syck_emitter_new): set buffer after

Data_Wrap_Struct to avoid possible GC. [ruby-talk:104835]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
why 2004-06-29 17:34:08 +00:00
Родитель 1b17df7bc1
Коммит 24d2835e27
2 изменённых файлов: 9 добавлений и 5 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Wed Jun 30 02:41:10 2004 why the lucky stiff <why@ruby-lang.org>
* ext/syck/rubyext.c (syck_emitter_new): set buffer after
Data_Wrap_Struct to avoid possible GC. [ruby-talk:104835]
Tue Jun 29 10:31:19 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (rb_eval_cmd, rb_thread_trap_eval): restore safe level.

Просмотреть файл

@ -907,7 +907,7 @@ syck_loader_initialize( self )
rb_hash_aset(families, rb_str_new2( YAML_DOMAIN ), rb_hash_new());
rb_hash_aset(families, rb_str_new2( RUBY_DOMAIN ), rb_hash_new());
return self;
return self;
}
/*
@ -1286,14 +1286,13 @@ syck_emitter_new(argc, argv, class)
{
VALUE pobj, options, init_argv[1];
SyckEmitter *emitter = syck_new_emitter();
rb_scan_args(argc, argv, "01", &options);
pobj = Data_Wrap_Struct( class, syck_mark_emitter, syck_free_emitter, emitter );
syck_emitter_ignore_id( emitter, Qnil );
syck_emitter_handler( emitter, rb_syck_output_handler );
emitter->bonus = (void *)rb_str_new2( "" );
rb_scan_args(argc, argv, "01", &options);
pobj = Data_Wrap_Struct( class, syck_mark_emitter, syck_free_emitter, emitter );
if ( ! rb_obj_is_instance_of( options, rb_cHash ) )
{
options = rb_hash_new();