* transcode.c (BYTE_ADDR): defined.
(WORD_ADDR): ditto. (BL_BASE): use BYTE_ADDR and WORD_ADDR. (BL_INFO): use WORD_ADDR. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4277473d5b
commit
ac5631e6f0
@ -1,3 +1,10 @@
|
|||||||
|
Wed Sep 3 20:58:30 2008 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* transcode.c (BYTE_ADDR): defined.
|
||||||
|
(WORD_ADDR): ditto.
|
||||||
|
(BL_BASE): use BYTE_ADDR and WORD_ADDR.
|
||||||
|
(BL_INFO): use WORD_ADDR.
|
||||||
|
|
||||||
Wed Sep 3 20:47:31 2008 Tanaka Akira <akr@fsij.org>
|
Wed Sep 3 20:47:31 2008 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
* transcode_data.h (rb_transcoder): new field: byte_array_length and
|
* transcode_data.h (rb_transcoder): new field: byte_array_length and
|
||||||
|
@ -491,16 +491,17 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#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)))
|
||||||
|
|
||||||
next_byte = (unsigned char)*in_p++;
|
next_byte = (unsigned char)*in_p++;
|
||||||
follow_byte:
|
follow_byte:
|
||||||
#define BL_BASE(next_table) \
|
|
||||||
(tr->byte_array + BYTE_LOOKUP_BASE(tr->word_array + next_table/sizeof(*tr->word_array)))
|
|
||||||
if (next_byte < BL_BASE(next_table)[0] || BL_BASE(next_table)[1] < next_byte)
|
if (next_byte < BL_BASE(next_table)[0] || BL_BASE(next_table)[1] < next_byte)
|
||||||
next_info = INVALID;
|
next_info = INVALID;
|
||||||
else {
|
else {
|
||||||
unsigned int next_offset = BL_BASE(next_table)[2+next_byte-BL_BASE(next_table)[0]];
|
unsigned int next_offset = BL_BASE(next_table)[2+next_byte-BL_BASE(next_table)[0]];
|
||||||
#define BL_INFO(next_table) \
|
|
||||||
(tr->word_array + BYTE_LOOKUP_INFO(tr->word_array + next_table/sizeof(*tr->word_array))/sizeof(*tr->word_array))
|
|
||||||
next_info = (VALUE)BL_INFO(next_table)[next_offset];
|
next_info = (VALUE)BL_INFO(next_table)[next_offset];
|
||||||
}
|
}
|
||||||
follow_info:
|
follow_info:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user