summaryrefslogtreecommitdiff
path: root/transcode.c
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-07-20 04:51:35 (GMT)
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-07-20 04:51:35 (GMT)
commit0a2c4b4c2a51044743e26daf1984558d34f9b78a (patch)
treefd48ee354f1a07f739c99bfae82c13b3020db337 /transcode.c
parenteeb05e8c119f8cab6434d90f21551b6bb2954778 (diff)
rb_econv_t: reduce to 184 bytes from 200 on 64-bit
* transcode.c (rb_econv_t): reduce to 184 bytes from 200 on 64-bit This allows rb_econv_t to fit inside of three cache lines on x86-64. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'transcode.c')
-rw-r--r--transcode.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/transcode.c b/transcode.c
index b640008..5f326fd 100644
--- a/transcode.c
+++ b/transcode.c
@@ -110,21 +110,21 @@ typedef struct {
struct rb_econv_t {
int flags;
+ int started; /* bool */
+
const char *source_encoding_name;
const char *destination_encoding_name;
- int started;
-
const unsigned char *replacement_str;
size_t replacement_len;
const char *replacement_enc;
- int replacement_allocated;
unsigned char *in_buf_start;
unsigned char *in_data_start;
unsigned char *in_data_end;
unsigned char *in_buf_end;
rb_econv_elem_t *elems;
+ int replacement_allocated; /* bool */
int num_allocated;
int num_trans;
int num_finished;