summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-03 11:59:50 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-03 11:59:50 +0000
commitd529be57039b20c775d8c19011bf92f33f8672dc (patch)
tree62ecdbc01bc787e16f14fd5f4f5183faf48107ff
parent33dfc906dc8868caf98a33cf553050b0374979e3 (diff)
downloadruby-d529be57039b20c775d8c19011bf92f33f8672dc.tar.gz
ruby-d529be57039b20c775d8c19011bf92f33f8672dc.tar.xz
ruby-d529be57039b20c775d8c19011bf92f33f8672dc.zip
* transcode.c (BYTE_ADDR): defined.
(WORD_ADDR): ditto. (BL_BASE): use BYTE_ADDR and WORD_ADDR. (BL_INFO): use WORD_ADDR. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--transcode.c9
2 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 8507ab4f4..ad5d2048f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
* transcode_data.h (rb_transcoder): new field: byte_array_length and
diff --git a/transcode.c b/transcode.c
index c6c828cbb..c68a6b9ab 100644
--- a/transcode.c
+++ b/transcode.c
@@ -491,16 +491,17 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
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++;
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)
next_info = INVALID;
else {
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];
}
follow_info: