diff --git a/ChangeLog b/ChangeLog index d0fb13541d..307ba8c28b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Mar 4 11:52:30 2015 Nobuyoshi Nakada + + * symbol.c (Init_sym): make dsym_fstrs a hash compared by identity + as the keys are unique fstrings, to get rid of running hash and + compare methods and causing new object allocation during garbage + collection phase. [ruby-dev:48891] [Bug #10933] + Wed Mar 4 10:16:57 2015 SHIBATA Hiroshi * enum.c: Fix typo in slice_after's exception message. diff --git a/symbol.c b/symbol.c index 1127020d17..696f0177b9 100644 --- a/symbol.c +++ b/symbol.c @@ -122,7 +122,7 @@ static const struct st_hash_type symhash = { void Init_sym(void) { - VALUE dsym_fstrs = rb_hash_new(); + VALUE dsym_fstrs = rb_ident_hash_new(); global_symbols.dsymbol_fstr_hash = dsym_fstrs; rb_gc_register_mark_object(dsym_fstrs); rb_obj_hide(dsym_fstrs);