diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | symbol.c | 3 |
2 files changed, 9 insertions, 0 deletions
@@ -1,3 +1,9 @@ +Tue Sep 9 05:48:42 2014 Eric Wong <e@80x24.org> + + * 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 <e@80x24.org> * vm_core.h (rb_env_t): use flexible array @@ -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; } |