ruby-changes:15836
From: usa <ko1@a...>
Date: Thu, 13 May 2010 13:03:11 +0900 (JST)
Subject: [ruby-changes:15836] Ruby:r27770 (trunk): * io.c (swallow): small optimize.
usa 2010-05-13 13:03:01 +0900 (Thu, 13 May 2010) New Revision: 27770 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27770 Log: * io.c (swallow): small optimize. Modified files: trunk/io.c Index: io.c =================================================================== --- io.c (revision 27769) +++ io.c (revision 27770) @@ -2294,23 +2294,23 @@ swallow(rb_io_t *fptr, int term) { if (NEED_READCONV(fptr)) { + rb_encoding *enc = io_read_encoding(fptr); + int needconv = rb_enc_mbminlen(enc) != 1; VALUE v; make_readconv(fptr, 0); do { size_t cnt; while ((cnt = READ_CHAR_PENDING_COUNT(fptr)) > 0) { const char *p = READ_CHAR_PENDING_PTR(fptr); - rb_encoding *enc = io_read_encoding(fptr); int i; - if (rb_enc_mbminlen(enc) == 1) { + if (needconv) { if (*p != term) return TRUE; while (--i && *++p == term); } else { const char *e = p + cnt; if (rb_enc_ascget(p, e, &i, enc) != term) return TRUE; - while ((p += i) < e && rb_enc_ascget(p, e, &i, enc) == term) - ; + while ((p += i) < e && rb_enc_ascget(p, e, &i, enc) == term); i = (int)(e - p); } io_shift_cbuf(fptr, (int)cnt - i, NULL); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/