Assume that the symbol is not garbage in rb_sym2id

rb_sym2id is a public API, so it is always a bug if the user holds on to
a dead object and passes it in.
This commit is contained in:
Peter Zhu 2025-07-02 11:26:28 -04:00
parent 4592d63739
commit 8b2d76136b

View file

@ -953,7 +953,7 @@ rb_sym2id(VALUE sym)
}
else if (DYNAMIC_SYM_P(sym)) {
GLOBAL_SYMBOLS_LOCKING(symbols) {
sym = dsymbol_check(symbols, sym);
RUBY_ASSERT(!rb_objspace_garbage_object_p(sym));
id = RSYMBOL(sym)->id;
if (UNLIKELY(!(id & ~ID_SCOPE_MASK))) {