ruby-changes:21859
From: duerst <ko1@a...>
Date: Wed, 30 Nov 2011 20:03:37 +0900 (JST)
Subject: [ruby-changes:21859] duerst:r33908 (trunk): transcode.c: Simplified rb_econv_binmode, avoided a warning on cygwin.
duerst 2011-11-30 20:03:22 +0900 (Wed, 30 Nov 2011) New Revision: 33908 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33908 Log: transcode.c: Simplified rb_econv_binmode, avoided a warning on cygwin. Modified files: trunk/ChangeLog trunk/transcode.c Index: ChangeLog =================================================================== --- ChangeLog (revision 33907) +++ ChangeLog (revision 33908) @@ -1,3 +1,7 @@ +Wed Nov 30 20:02:02 2011 Martin Duerst <duerst@i...> + + * transcode.c: Simplified rb_econv_binmode, avoided a warning on cygwin. + Wed Nov 30 08:57:07 2011 Eric Hodel <drbrain@s...> * lib/mkmf.rb: Use MakeMakefile's rm_f to avoid conflict with Rake or Index: transcode.c =================================================================== --- transcode.c (revision 33907) +++ transcode.c (revision 33908) @@ -1936,13 +1936,8 @@ void rb_econv_binmode(rb_econv_t *ec) { - const rb_transcoder *trs[3]; - int n, i, j; - transcoder_entry_t *entry; - int num_trans; const char *dname = 0; - n = 0; switch (ec->flags & ECONV_NEWLINE_DECORATOR_MASK) { case ECONV_UNIVERSAL_NEWLINE_DECORATOR: dname = "universal_newline"; @@ -1954,32 +1949,24 @@ dname = "cr_newline"; break; } + if (dname) { - entry = get_transcoder_entry("", dname); - if (entry->transcoder) - trs[n++] = entry->transcoder; - } + const rb_transcoder *transcoder = get_transcoder_entry("", dname)->transcoder; + int num_trans = ec->num_trans; + int i, j = 0; - num_trans = ec->num_trans; - j = 0; - for (i = 0; i < num_trans; i++) { - int k; - for (k = 0; k < n; k++) - if (trs[k] == ec->elems[i].tc->transcoder) - break; - if (k == n) { - ec->elems[j] = ec->elems[i]; - j++; - } - else { - rb_transcoding_close(ec->elems[i].tc); - xfree(ec->elems[i].out_buf_start); - ec->num_trans--; - } + for (i=0; i < num_trans; i++) { + if (transcoder == ec->elems[i].tc->transcoder) { + rb_transcoding_close(ec->elems[i].tc); + xfree(ec->elems[i].out_buf_start); + ec->num_trans--; + } + else + ec->elems[j++] = ec->elems[i]; + } } ec->flags &= ~ECONV_NEWLINE_DECORATOR_MASK; - } static VALUE -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/