ruby-changes:6757
From: nobu <ko1@a...>
Date: Thu, 31 Jul 2008 00:58:51 +0900 (JST)
Subject: [ruby-changes:6757] Ruby:r18273 (trunk): * pack.c (pack_unpack): reduced static variables.
nobu 2008-07-31 00:58:36 +0900 (Thu, 31 Jul 2008) New Revision: 18273 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18273 Log: * pack.c (pack_unpack): reduced static variables. Modified files: trunk/ChangeLog trunk/pack.c Index: ChangeLog =================================================================== --- ChangeLog (revision 18272) +++ ChangeLog (revision 18273) @@ -1,3 +1,7 @@ +Thu Jul 31 00:58:33 2008 Nobuyoshi Nakada <nobu@r...> + + * pack.c (pack_unpack): reduced static variables. + Thu Jul 31 00:10:20 2008 Yusuke Endoh <mame@t...> * proc.c (rb_proc_call_with_block): prevent null reference. Index: pack.c =================================================================== --- pack.c (revision 18272) +++ pack.c (revision 18273) @@ -1787,33 +1787,31 @@ VALUE buf = infected_str_new(0, (send - s)*3/4, str); char *ptr = RSTRING_PTR(buf); int a = -1,b = -1,c = 0,d; - static int first = 1; - static int b64_xtable[256]; + static signed char b64_xtable[256]; - if (first) { + if (b64_xtable['/'] <= 0) { int i; - first = 0; for (i = 0; i < 256; i++) { b64_xtable[i] = -1; } for (i = 0; i < 64; i++) { - b64_xtable[(int)b64_table[i]] = i; + b64_xtable[(unsigned char)b64_table[i]] = i; } } while (s < send) { a = b = c = d = -1; - while((a = b64_xtable[(int)(*(unsigned char*)s)]) == -1 && s < send) { s++; } - if( s >= send ) break; + while ((a = b64_xtable[(unsigned char)*s]) == -1 && s < send) {s++;} + if (s >= send) break; s++; - while((b = b64_xtable[(int)(*(unsigned char*)s)]) == -1 && s < send) { s++; } - if( s >= send ) break; + while ((b = b64_xtable[(unsigned char)*s]) == -1 && s < send) {s++;} + if (s >= send) break; s++; - while((c = b64_xtable[(int)(*(unsigned char*)s)]) == -1 && s < send) { if( *s == '=' ) break; s++; } - if( *s == '=' || s >= send ) break; + while ((c = b64_xtable[(unsigned char)*s]) == -1 && s < send) {if (*s == '=') break; s++;} + if (*s == '=' || s >= send) break; s++; - while((d = b64_xtable[(int)(*(unsigned char*)s)]) == -1 && s < send) { if( *s == '=' ) break; s++; } - if( *s == '=' || s >= send ) break; + while ((d = b64_xtable[(unsigned char)*s]) == -1 && s < send) {if (*s == '=') break; s++;} + if (*s == '=' || s >= send) break; s++; *ptr++ = a << 2 | b >> 4; *ptr++ = b << 4 | c >> 2; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/