summaryrefslogtreecommitdiff
path: root/encoding.c
diff options
context:
space:
mode:
Diffstat (limited to 'encoding.c')
-rw-r--r--encoding.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/encoding.c b/encoding.c
index 47646cc36c..db384f57b0 100644
--- a/encoding.c
+++ b/encoding.c
@@ -94,9 +94,12 @@ rb_to_encoding(VALUE enc)
{
int idx;
- if (NIL_P(enc)) return rb_enc_from_index(0);
+ if (NIL_P(enc)) return 0;
idx = enc_check_encoding(enc);
if (idx >= 0) return RDATA(enc)->data;
+ if (NIL_P(enc = rb_check_string_type(enc))) {
+ return 0;
+ }
if ((idx = rb_enc_find_index(StringValueCStr(enc))) < 0) {
rb_raise(rb_eArgError, "unknown encoding name - %s", RSTRING_PTR(enc));
}