ruby-changes:7569
From: akr <ko1@a...>
Date: Wed, 3 Sep 2008 21:09:23 +0900 (JST)
Subject: [ruby-changes:7569] Ruby:r19090 (trunk): * transcode.c (BL_MIN_BYTE): defined.
akr 2008-09-03 21:08:27 +0900 (Wed, 03 Sep 2008) New Revision: 19090 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19090 Log: * transcode.c (BL_MIN_BYTE): defined. (BL_MAX_BYTE): defined. (BL_OFFSET): defined. (BL_ACTION): defined. (transcode_restartable0): use BL_MIN_BYTE, BL_MAX_BYTE and BL_ACTION. Modified files: trunk/ChangeLog trunk/transcode.c Index: ChangeLog =================================================================== --- ChangeLog (revision 19089) +++ ChangeLog (revision 19090) @@ -1,3 +1,12 @@ +Wed Sep 3 21:07:30 2008 Tanaka Akira <akr@f...> + + * transcode.c (BL_MIN_BYTE): defined. + (BL_MAX_BYTE): defined. + (BL_OFFSET): defined. + (BL_ACTION): defined. + (transcode_restartable0): use BL_MIN_BYTE, BL_MAX_BYTE and + BL_ACTION. + Wed Sep 3 20:58:30 2008 Tanaka Akira <akr@f...> * transcode.c (BYTE_ADDR): defined. Index: transcode.c =================================================================== --- transcode.c (revision 19089) +++ transcode.c (revision 19090) @@ -493,16 +493,19 @@ #define BYTE_ADDR(index) (tr->byte_array + (index)) #define WORD_ADDR(index) (tr->word_array + (index)/sizeof(*tr->word_array)) -#define BL_BASE(next_table) BYTE_ADDR(BYTE_LOOKUP_BASE(WORD_ADDR(next_table))) -#define BL_INFO(next_table) WORD_ADDR(BYTE_LOOKUP_INFO(WORD_ADDR(next_table))) +#define BL_BASE(bl) BYTE_ADDR(BYTE_LOOKUP_BASE(WORD_ADDR(bl))) +#define BL_INFO(bl) WORD_ADDR(BYTE_LOOKUP_INFO(WORD_ADDR(bl))) +#define BL_MIN_BYTE(bl) (BYTE_ADDR(BYTE_LOOKUP_BASE(WORD_ADDR(bl)))[0]) +#define BL_MAX_BYTE(bl) (BYTE_ADDR(BYTE_LOOKUP_BASE(WORD_ADDR(bl)))[1]) +#define BL_OFFSET(bl, byte) (BL_BASE(bl)[2+(byte)-BL_MIN_BYTE(bl)]) +#define BL_ACTION(bl, byte) (BL_INFO(bl)[BL_OFFSET(bl, (byte))]) next_byte = (unsigned char)*in_p++; follow_byte: - if (next_byte < BL_BASE(next_table)[0] || BL_BASE(next_table)[1] < next_byte) + if (next_byte < BL_MIN_BYTE(next_table) || BL_MAX_BYTE(next_table) < next_byte) next_info = INVALID; else { - unsigned int next_offset = BL_BASE(next_table)[2+next_byte-BL_BASE(next_table)[0]]; - next_info = (VALUE)BL_INFO(next_table)[next_offset]; + next_info = (VALUE)BL_ACTION(next_table, next_byte); } follow_info: switch (next_info & 0x1F) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/