summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--encoding.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/encoding.c b/encoding.c
index 64748ceb27..330be29f4b 100644
--- a/encoding.c
+++ b/encoding.c
@@ -418,9 +418,16 @@ rb_encoding *
rb_enc_from_index(int index)
{
rb_encoding *enc;
- GLOBAL_ENC_TABLE_EVAL(enc_table,
- enc = enc_from_index(enc_table, index));
- return enc;
+
+ switch (index) {
+ case ENCINDEX_ASCII: return global_enc_ascii;
+ case ENCINDEX_UTF_8: return global_enc_utf_8;
+ case ENCINDEX_US_ASCII: return global_enc_us_ascii;
+ default:
+ GLOBAL_ENC_TABLE_EVAL(enc_table,
+ enc = enc_from_index(enc_table, index));
+ return enc;
+ }
}
int