aboutsummaryrefslogtreecommitdiffstats
path: root/encoding.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-19 11:08:16 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-19 11:08:16 +0000
commit5d5d0b5c38e0d4259f9c775d88dc2177f5e943ba (patch)
tree2a7a50ae8b045aa04d912e4a2cb8fea7dd5c9a2e /encoding.c
parentc7697aba346c6928164ef53151f3e1090a1176e8 (diff)
downloadruby-5d5d0b5c38e0d4259f9c775d88dc2177f5e943ba.tar.gz
* encoding.c (rb_id_encoding): returns ID "encoding".
* marshal.c (w_encoding): dump encoding name. * marshal.c (r_ivar): load encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'encoding.c')
-rw-r--r--encoding.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/encoding.c b/encoding.c
index 289fba72f9..a67e49fefb 100644
--- a/encoding.c
+++ b/encoding.c
@@ -267,6 +267,15 @@ enc_check_capable(VALUE x)
}
}
+ID
+rb_id_encoding(void)
+{
+ if (!id_encoding) {
+ id_encoding = rb_intern("encoding");
+ }
+ return id_encoding;
+}
+
void
rb_enc_associate_index(VALUE obj, int idx)
{
@@ -280,10 +289,7 @@ rb_enc_associate_index(VALUE obj, int idx)
return;
}
ENCODING_SET(obj, ENCODING_INLINE_MAX);
- if (!id_encoding) {
- id_encoding = rb_intern("encoding");
- }
- rb_ivar_set(obj, id_encoding, INT2NUM(idx));
+ rb_ivar_set(obj, rb_id_encoding(), INT2NUM(idx));
return;
}
@@ -317,10 +323,7 @@ rb_enc_get_index(VALUE obj)
if (i == ENCODING_INLINE_MAX) {
VALUE iv;
- if (!id_encoding) {
- id_encoding = rb_intern("encoding");
- }
- iv = rb_ivar_get(obj, id_encoding);
+ iv = rb_ivar_get(obj, rb_id_encoding());
i = NUM2INT(iv);
}
return i;