* transcode.c (transcode_restartable): my_transcoder argument removed.

(transcode_loop): my_transcoder argument removed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2008-08-09 06:25:05 +00:00
parent 139234e1a0
commit ca3dd2d89e
2 changed files with 13 additions and 8 deletions

View File

@ -1,3 +1,8 @@
Sat Aug 9 15:10:15 2008 Tanaka Akira <akr@fsij.org>
* transcode.c (transcode_restartable): my_transcoder argument removed.
(transcode_loop): my_transcoder argument removed.
Sat Aug 9 14:39:34 2008 Tanaka Akira <akr@fsij.org> Sat Aug 9 14:39:34 2008 Tanaka Akira <akr@fsij.org>
* transcode_data.h (rb_transcoding): add fields for restartable * transcode_data.h (rb_transcoding): add fields for restartable

View File

@ -357,11 +357,11 @@ typedef enum {
static transcode_result_t static transcode_result_t
transcode_restartable(const unsigned char **in_pos, unsigned char **out_pos, transcode_restartable(const unsigned char **in_pos, unsigned char **out_pos,
const unsigned char *in_stop, unsigned char *out_stop, const unsigned char *in_stop, unsigned char *out_stop,
const rb_transcoder *my_transcoder,
rb_transcoding *my_transcoding, rb_transcoding *my_transcoding,
const int opt) const int opt)
{ {
const rb_transcoder *my_transcoder = my_transcoding->transcoder;
int unitlen = my_transcoder->input_unit_length; int unitlen = my_transcoder->input_unit_length;
const unsigned char *in_p; const unsigned char *in_p;
@ -571,10 +571,10 @@ more_output_buffer(
static void static void
transcode_loop(const unsigned char **in_pos, unsigned char **out_pos, transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
const unsigned char *in_stop, unsigned char *out_stop, const unsigned char *in_stop, unsigned char *out_stop,
const rb_transcoder *my_transcoder,
rb_transcoding *my_transcoding, rb_transcoding *my_transcoding,
const int opt) const int opt)
{ {
const rb_transcoder *my_transcoder = my_transcoding->transcoder;
transcode_result_t ret; transcode_result_t ret;
unsigned char *out_start = *out_pos; unsigned char *out_start = *out_pos;
@ -591,7 +591,7 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
} while(0) } while(0)
resume: resume:
ret = transcode_restartable(in_pos, out_pos, in_stop, out_stop, my_transcoder, my_transcoding, opt); ret = transcode_restartable(in_pos, out_pos, in_stop, out_stop, my_transcoding, opt);
if (ret == transcode_invalid_input) { if (ret == transcode_invalid_input) {
/* deal with invalid byte sequence */ /* deal with invalid byte sequence */
/* todo: add more alternative behaviors */ /* todo: add more alternative behaviors */
@ -637,10 +637,10 @@ resume:
static void static void
transcode_loop(const unsigned char **in_pos, unsigned char **out_pos, transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
const unsigned char *in_stop, unsigned char *out_stop, const unsigned char *in_stop, unsigned char *out_stop,
const rb_transcoder *my_transcoder,
rb_transcoding *my_transcoding, rb_transcoding *my_transcoding,
const int opt) const int opt)
{ {
const rb_transcoder *my_transcoder = my_transcoding->transcoder;
transcode_result_t ret; transcode_result_t ret;
unsigned char *out_start = *out_pos; unsigned char *out_start = *out_pos;
const unsigned char *ptr; const unsigned char *ptr;
@ -666,14 +666,14 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
if (ret == transcode_ibuf_empty) { if (ret == transcode_ibuf_empty) {
if (ptr < in_stop) { if (ptr < in_stop) {
input_byte = *ptr; input_byte = *ptr;
ret = transcode_restartable(&p, out_pos, p+1, out_stop, my_transcoder, my_transcoding, opt|PARTIAL_INPUT); ret = transcode_restartable(&p, out_pos, p+1, out_stop, my_transcoding, opt|PARTIAL_INPUT);
} }
else { else {
ret = transcode_restartable(NULL, out_pos, NULL, out_stop, my_transcoder, my_transcoding, opt); ret = transcode_restartable(NULL, out_pos, NULL, out_stop, my_transcoding, opt);
} }
} }
else { else {
ret = transcode_restartable(NULL, out_pos, NULL, out_stop, my_transcoder, my_transcoding, opt|PARTIAL_INPUT); ret = transcode_restartable(NULL, out_pos, NULL, out_stop, my_transcoding, opt|PARTIAL_INPUT);
} }
if (&input_byte != p) if (&input_byte != p)
ptr += p - &input_byte; ptr += p - &input_byte;
@ -846,7 +846,7 @@ str_transcode(int argc, VALUE *argv, VALUE *self)
my_transcoding.ruby_string_dest = dest; my_transcoding.ruby_string_dest = dest;
my_transcoding.flush_func = str_transcoding_resize; my_transcoding.flush_func = str_transcoding_resize;
transcode_loop(&fromp, &bp, (sp+slen), (bp+blen), my_transcoder, &my_transcoding, options); transcode_loop(&fromp, &bp, (sp+slen), (bp+blen), &my_transcoding, options);
if (fromp != sp+slen) { if (fromp != sp+slen) {
rb_raise(rb_eArgError, "not fully converted, %"PRIdPTRDIFF" bytes left", sp+slen-fromp); rb_raise(rb_eArgError, "not fully converted, %"PRIdPTRDIFF" bytes left", sp+slen-fromp);
} }