diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-02 08:22:19 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-02 08:22:19 +0000 |
commit | aa1acf1d4282d44ddfa677d24b7c3c1e951467d6 (patch) | |
tree | 24f9cbcf9aa83bd8a13279706c46d7977769f4c6 /include | |
parent | 263ce88f9f2f713273e628bcef64e5f13cdbc2ff (diff) | |
download | ruby-aa1acf1d4282d44ddfa677d24b7c3c1e951467d6.tar.gz |
encoding.c: validate index
* encoding.c (rb_enc_set_index, rb_enc_associate_index): validate
argument encoding index.
* include/ruby/encoding.h (ENCODING_SET): use rb_enc_set_index()
instead of setting inlined bits directly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include')
-rw-r--r-- | include/ruby/encoding.h | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h index 1233053063..2cd44eafe1 100644 --- a/include/ruby/encoding.h +++ b/include/ruby/encoding.h @@ -32,14 +32,7 @@ RUBY_SYMBOL_EXPORT_BEGIN RBASIC(obj)->flags &= ~ENCODING_MASK;\ RBASIC(obj)->flags |= (VALUE)(i) << ENCODING_SHIFT;\ } while (0) -#define ENCODING_SET(obj,i) do {\ - VALUE rb_encoding_set_obj = (obj); \ - int encoding_set_enc_index = (i); \ - if (encoding_set_enc_index < ENCODING_INLINE_MAX) \ - ENCODING_SET_INLINED(rb_encoding_set_obj, encoding_set_enc_index); \ - else \ - rb_enc_set_index(rb_encoding_set_obj, encoding_set_enc_index); \ -} while (0) +#define ENCODING_SET(obj,i) rb_enc_set_index((obj), (i)) #define ENCODING_GET_INLINED(obj) (int)((RBASIC(obj)->flags & ENCODING_MASK)>>ENCODING_SHIFT) #define ENCODING_GET(obj) \ |