[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]