From e54f880643a91c9bb1dcecc5cec6b43254ef466d Mon Sep 17 00:00:00 2001 From: naruse Date: Tue, 16 Jun 2009 11:10:10 +0000 Subject: [PATCH] * transcode.c (transcode_restartable0): refix can't build with VC9. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ transcode.c | 23 ++++++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index e4e78495b6..3416cbc79e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Jun 16 20:07:09 2009 NARUSE, Yui + + * transcode.c (transcode_restartable0): refix can't build with VC9. + Tue Jun 16 16:09:59 2009 TAKANO Mitsuhiro (takano32) * parse.y (parser_read_escape, parser_tokadd_escape): diff --git a/transcode.c b/transcode.c index 7d2d115cb3..524ea660dc 100644 --- a/transcode.c +++ b/transcode.c @@ -540,15 +540,20 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos, follow_info: switch (next_info & 0x1F) { case NOMAP: - { - const unsigned char *pend = in_p; - in_p = inchar_start; - while (in_p < pend) { - next_byte = (unsigned char)*in_p++; - SUSPEND_OBUF(3); *out_p++ = next_byte; - } - } - continue; + { + const unsigned char *p = inchar_start; + writebuf_off = 0; + while (p < in_p) { + TRANSCODING_WRITEBUF(tc)[writebuf_off++] = (unsigned char)*p++; + } + writebuf_len = writebuf_off; + writebuf_off = 0; + while (writebuf_off < writebuf_len) { + SUSPEND_OBUF(3); + *out_p++ = TRANSCODING_WRITEBUF(tc)[writebuf_off++]; + } + } + continue; case 0x00: case 0x04: case 0x08: case 0x0C: case 0x10: case 0x14: case 0x18: case 0x1C: SUSPEND_AFTER_OUTPUT(25);