aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--transcode.c16
2 files changed, 13 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 902bd6831b..5bbc89be33 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
* transcode_data.h (rb_transcoding): add fields for restartable
diff --git a/transcode.c b/transcode.c
index 4c979e8c41..c1323e3ac7 100644
--- a/transcode.c
+++ b/transcode.c
@@ -357,11 +357,11 @@ typedef enum {
static transcode_result_t
transcode_restartable(const unsigned char **in_pos, unsigned char **out_pos,
const unsigned char *in_stop, unsigned char *out_stop,
- const rb_transcoder *my_transcoder,
rb_transcoding *my_transcoding,
const int opt)
{
+ const rb_transcoder *my_transcoder = my_transcoding->transcoder;
int unitlen = my_transcoder->input_unit_length;
const unsigned char *in_p;
@@ -571,10 +571,10 @@ more_output_buffer(
static void
transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
const unsigned char *in_stop, unsigned char *out_stop,
- const rb_transcoder *my_transcoder,
rb_transcoding *my_transcoding,
const int opt)
{
+ const rb_transcoder *my_transcoder = my_transcoding->transcoder;
transcode_result_t ret;
unsigned char *out_start = *out_pos;
@@ -591,7 +591,7 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
} while(0)
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) {
/* deal with invalid byte sequence */
/* todo: add more alternative behaviors */
@@ -637,10 +637,10 @@ resume:
static void
transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
const unsigned char *in_stop, unsigned char *out_stop,
- const rb_transcoder *my_transcoder,
rb_transcoding *my_transcoding,
const int opt)
{
+ const rb_transcoder *my_transcoder = my_transcoding->transcoder;
transcode_result_t ret;
unsigned char *out_start = *out_pos;
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 (ptr < in_stop) {
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 {
- 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 {
- 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)
ptr += p - &input_byte;
@@ -846,7 +846,7 @@ str_transcode(int argc, VALUE *argv, VALUE *self)
my_transcoding.ruby_string_dest = dest;
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) {
rb_raise(rb_eArgError, "not fully converted, %"PRIdPTRDIFF" bytes left", sp+slen-fromp);
}