summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--encoding.c46
-rw-r--r--version.h2
2 files changed, 26 insertions, 22 deletions
diff --git a/encoding.c b/encoding.c
index b8ad8016de..7d73244675 100644
--- a/encoding.c
+++ b/encoding.c
@@ -566,27 +566,31 @@ rb_enc_get_index(VALUE obj)
VALUE tmp;
switch (BUILTIN_TYPE(obj)) {
- default:
- case T_STRING:
- case T_REGEXP:
- i = ENCODING_GET_INLINED(obj);
- if (i == ENCODING_INLINE_MAX) {
- VALUE iv;
-
- iv = rb_ivar_get(obj, rb_id_encoding());
- i = NUM2INT(iv);
- }
- break;
- case T_FILE:
- tmp = rb_funcall(obj, rb_intern("internal_encoding"), 0, 0);
- if (NIL_P(tmp)) obj = rb_funcall(obj, rb_intern("external_encoding"), 0, 0);
- else obj = tmp;
- if (NIL_P(obj)) break;
- case T_DATA:
- if (RDATA(obj)->dmark == enc_mark) {
- i = enc_check_encoding(obj);
- }
- break;
+ as_default:
+ default:
+ case T_STRING:
+ case T_REGEXP:
+ i = ENCODING_GET_INLINED(obj);
+ if (i == ENCODING_INLINE_MAX) {
+ VALUE iv;
+
+ iv = rb_ivar_get(obj, rb_id_encoding());
+ i = NUM2INT(iv);
+ }
+ break;
+ case T_FILE:
+ tmp = rb_funcall(obj, rb_intern("internal_encoding"), 0, 0);
+ if (NIL_P(tmp)) obj = rb_funcall(obj, rb_intern("external_encoding"), 0, 0);
+ else obj = tmp;
+ if (NIL_P(obj)) break;
+ case T_DATA:
+ if (RDATA(obj)->dmark == enc_mark) {
+ i = enc_check_encoding(obj);
+ }
+ else {
+ goto as_default;
+ }
+ break;
}
return i;
}
diff --git a/version.h b/version.h
index d6718b4e2b..1729b04c64 100644
--- a/version.h
+++ b/version.h
@@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.1"
-#define RUBY_PATCHLEVEL 276
+#define RUBY_PATCHLEVEL 277
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 1