From ec177aa5908e21c041db507da35a6a78f81e1e86 Mon Sep 17 00:00:00 2001 From: normal Date: Mon, 8 Sep 2014 20:51:57 +0000 Subject: symbol.c (rb_intern_cstr_without_pindown): check dsymbol on return This is not a complete fix for bug 10206, but seems to reduce that crash and also looks correct. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ symbol.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 4ac498ba19..77e34fd7d7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Sep 9 05:48:42 2014 Eric Wong + + * symbol.c (rb_intern_cstr_without_pindown): check dsymbol on return + This is not a complete fix for bug 10206, but seems to reduce + that crash and also looks correct. + Tue Sep 9 04:36:24 2014 Eric Wong * vm_core.h (rb_env_t): use flexible array diff --git a/symbol.c b/symbol.c index 630a386eb0..9cb2fe478e 100644 --- a/symbol.c +++ b/symbol.c @@ -525,6 +525,9 @@ rb_intern_cstr_without_pindown(const char *name, long len, rb_encoding *enc) OBJ_FREEZE(str); if (st_lookup(global_symbols.str_id, str, &id)) { + if (ID_DYNAMIC_SYM_P((ID)id)) { + return (ID)dsymbol_check((VALUE)id); + } return (ID)id; } -- cgit v1.2.3