* ext/syck/rubyext.c: attribute name was truncated with Rev1.64.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ocean 2005-12-31 10:57:06 +00:00
Родитель 12cb36f9bb
Коммит a711b321b7
2 изменённых файлов: 14 добавлений и 12 удалений

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

@ -1,3 +1,7 @@
Sat Dec 31 19:50:38 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
* ext/syck/rubyext.c: attribute name was truncated with Rev1.64.
Sat Dec 31 11:53:16 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> Sat Dec 31 11:53:16 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
* lib/generator.rb: (Generator#initialize): should kill @loop_thread * lib/generator.rb: (Generator#initialize): should kill @loop_thread
@ -13,12 +17,12 @@ Fri Dec 30 18:22:42 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
Fri Dec 30 15:17:35 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> Fri Dec 30 15:17:35 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
* lib/generator.rb: (Generator#initialize) ensured to stop @loop_thread. * lib/generator.rb (Generator#initialize): ensured to stop @loop_thread.
Mr. Tanaka pointed out one Thread.pass is not enough. [ruby-dev:28185] Mr. Tanaka pointed out one Thread.pass is not enough. [ruby-dev:28185]
Fri Dec 30 12:20:57 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> Fri Dec 30 12:20:57 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
* lib/generator.rb: (Generator#initialize) fixed dead lock. this occured * lib/generator.rb (Generator#initialize): fixed dead lock. this occured
when end? was called before @loop_thread was stopped. [ruby-core:7029] when end? was called before @loop_thread was stopped. [ruby-core:7029]
Fri Dec 30 01:04:52 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> Fri Dec 30 01:04:52 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>

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

@ -115,15 +115,14 @@ rb_syck_compile(self, port)
oid = syck_parse( parser ); oid = syck_parse( parser );
syck_lookup_sym( parser, oid, (char **)&sav ); syck_lookup_sym( parser, oid, (char **)&sav );
bc = rb_str_new(0, strlen( sav->buffer ) + 3); ret = S_ALLOCA_N( char, strlen( sav->buffer ) + 3 );
ret = RSTRING(bc)->ptr;
ret[0] = '\0'; ret[0] = '\0';
strcat( ret, "D\n" ); strcat( ret, "D\n" );
strcat( ret, sav->buffer ); strcat( ret, sav->buffer );
syck_free_parser( parser ); syck_free_parser( parser );
rb_str_resize( bc, strlen(ret) ); bc = rb_str_new2( ret );
if ( taint ) OBJ_TAINT( bc ); if ( taint ) OBJ_TAINT( bc );
return bc; return bc;
} }
@ -1043,13 +1042,12 @@ syck_set_ivars( vars, obj )
{ {
VALUE ivname = rb_ary_entry( vars, 0 ); VALUE ivname = rb_ary_entry( vars, 0 );
char *ivn; char *ivn;
ID ivns;
StringValue( ivname ); StringValue( ivname );
ivn = S_ALLOC_N( char, RSTRING(ivname)->len + 2 ); ivn = S_ALLOCA_N( char, RSTRING(ivname)->len + 2 );
snprintf(ivn, RSTRING(ivname)->len + 1, "@%s", RSTRING(ivname)->ptr); ivn[0] = '@';
ivns = rb_intern(ivn); ivn[1] = '\0';
S_FREE( ivn ); strncat( ivn, RSTRING(ivname)->ptr, RSTRING(ivname)->len );
rb_ivar_set( obj, ivns, rb_ary_entry( vars, 1 ) ); rb_iv_set( obj, ivn, rb_ary_entry( vars, 1 ) );
return Qnil; return Qnil;
} }