summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-21 05:32:12 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-21 05:32:12 +0000
commitae3327d1d42aa812385c852f25b74f30e9a94fa3 (patch)
treeff4bdbbf1379168b438cb94b48b6f0c1425ae0eb
parentae6eeb20ef7656eabca44c1096ed7f1764a73880 (diff)
downloadruby-ae3327d1d42aa812385c852f25b74f30e9a94fa3.tar.gz
ruby-ae3327d1d42aa812385c852f25b74f30e9a94fa3.tar.xz
ruby-ae3327d1d42aa812385c852f25b74f30e9a94fa3.zip
* transcode.c (str_transcode): initialize transcoder in
rb_transcoding. [ruby-dev:33234] * transcode_data.h (rb_transcoding): transcoder constified. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--transcode.c2
-rw-r--r--transcode_data.h2
3 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index beff20e87..0ee31f6a3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Mon Jan 21 14:32:10 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * transcode.c (str_transcode): initialize transcoder in
+ rb_transcoding. [ruby-dev:33234]
+
+ * transcode_data.h (rb_transcoding): transcoder constified.
+
Mon Jan 21 12:50:02 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c, gc.c (setjmp): sigsetjmp is a macro on cygwin.
diff --git a/transcode.c b/transcode.c
index e36e6c146..370bd06c3 100644
--- a/transcode.c
+++ b/transcode.c
@@ -311,6 +311,8 @@ str_transcode(int argc, VALUE *argv, VALUE *self)
return -1;
}
+ my_transcoding.transcoder = my_transcoder;
+
while (!final_encoding) { /* loop for multistep transcoding */
/* later, maybe use smaller intermediate strings for very long strings */
if (!(my_transcoder = transcode_dispatch(from_e, to_e))) {
diff --git a/transcode_data.h b/transcode_data.h
index 34f298853..f025b4e6f 100644
--- a/transcode_data.h
+++ b/transcode_data.h
@@ -59,7 +59,7 @@ typedef struct byte_lookup {
/* dynamic structure, one per conversion (similar to iconv_t) */
/* may carry conversion state (e.g. for iso-2022-jp) */
typedef struct rb_transcoding {
- struct rb_transcoder *transcoder;
+ const struct rb_transcoder *transcoder;
VALUE ruby_string_dest; /* the String used as the conversion destination,
or NULL if something else is being converted */
unsigned char *(*flush_func)(struct rb_transcoding*, int, int);