From 2ae7b0328e9bf0caf16411eabc924effedccfb5c Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 1 Sep 2008 14:33:56 +0000 Subject: [PATCH] * transcode_data.h (BYTE_LOOKUP_BASE): abstract accessor for BYTE_LOOKUP. (BYTE_LOOKUP_INFO): ditto. * transcode.c (transcode_restartable0): use BYTE_LOOKUP_BASE and BYTE_LOOKUP_INFO. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 9 +++++++++ transcode.c | 6 +++--- transcode_data.h | 3 +++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d4ba6b17ef..a26dff77ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Mon Sep 1 23:32:46 2008 Tanaka Akira + + * transcode_data.h (BYTE_LOOKUP_BASE): abstract accessor for + BYTE_LOOKUP. + (BYTE_LOOKUP_INFO): ditto. + + * transcode.c (transcode_restartable0): use BYTE_LOOKUP_BASE and + BYTE_LOOKUP_INFO. + Mon Sep 1 23:14:25 2008 Tanaka Akira * tool/transcode-tblgen.rb: gather infos arrays and BYTE_LOOKUPs. diff --git a/transcode.c b/transcode.c index 53c0ae7010..a67565e3e4 100644 --- a/transcode.c +++ b/transcode.c @@ -493,11 +493,11 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos, next_byte = (unsigned char)*in_p++; follow_byte: - if (next_byte < next_table->base[0] || next_table->base[1] < next_byte) + if (next_byte < BYTE_LOOKUP_BASE(next_table)[0] || BYTE_LOOKUP_BASE(next_table)[1] < next_byte) next_info = INVALID; else { - unsigned int next_offset = next_table->base[2+next_byte-next_table->base[0]]; - next_info = (VALUE)next_table->info[next_offset]; + unsigned int next_offset = BYTE_LOOKUP_BASE(next_table)[2+next_byte-BYTE_LOOKUP_BASE(next_table)[0]]; + next_info = (VALUE)BYTE_LOOKUP_INFO(next_table)[next_offset]; } follow_info: switch (next_info & 0x1F) { diff --git a/transcode_data.h b/transcode_data.h index 1b8eeae379..b705760273 100644 --- a/transcode_data.h +++ b/transcode_data.h @@ -21,6 +21,9 @@ typedef struct byte_lookup { const struct byte_lookup *const *info; } BYTE_LOOKUP; +#define BYTE_LOOKUP_BASE(bl) ((bl)->base) +#define BYTE_LOOKUP_INFO(bl) ((bl)->info) + #ifndef PType /* data file needs to treat this as a pointer, to remove warnings */ #define PType (const BYTE_LOOKUP *)