diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-21 14:16:00 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-21 14:16:00 +0000 |
commit | 967cca2f8d13c113461f26879d501b03cfeec6c0 (patch) | |
tree | d093f11df7682c60dcd8108340f2f02c3a634dcc | |
parent | 5a164c1891600cd20fadbda4f173b8a578f95126 (diff) | |
download | ruby-967cca2f8d13c113461f26879d501b03cfeec6c0.tar.gz |
* parse.y (rb_intern2): ID_JUNK test based on len, not by NUL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | parse.y | 4 |
2 files changed, 6 insertions, 2 deletions
@@ -1,3 +1,7 @@ +Thu Jun 21 23:08:19 2007 Yukihiro Matsumoto <matz@ruby-lang.org> + + * parse.y (rb_intern2): ID_JUNK test based on len, not by NUL. + Thu Jun 21 19:42:07 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * yarvcore.c (rb_thread_mark): mark also thrown_errinfo. @@ -8420,8 +8420,8 @@ rb_symname_p(const char *name) ID rb_intern2(const char *name, long len) { + const char *m = name; VALUE str = rb_str_new(name, len); - const char *m = RSTRING_PTR(str); ID id; int last; @@ -8481,7 +8481,7 @@ rb_intern2(const char *name, long len) m += mbclen(*m); } } - if (*m) id = ID_JUNK; + if (m - name < len) id = ID_JUNK; new_id: id |= ++global_symbols.last_id << ID_SCOPE_SHIFT; id_register: |