This commit is contained in:
Peter Zhu 2023-09-24 09:07:34 -04:00
Родитель 34d802f32f
Коммит 36cdf163df
1 изменённых файлов: 8 добавлений и 2 удалений

10
hash.c
Просмотреть файл

@ -1160,7 +1160,7 @@ ar_clear(VALUE hash)
} }
static void static void
hash_st_free_and_clear_table(VALUE hash) hash_st_free(VALUE hash)
{ {
HASH_ASSERT(RHASH_ST_TABLE_P(hash)); HASH_ASSERT(RHASH_ST_TABLE_P(hash));
@ -1168,6 +1168,12 @@ hash_st_free_and_clear_table(VALUE hash)
free(tab->bins); free(tab->bins);
free(tab->entries); free(tab->entries);
}
static void
hash_st_free_and_clear_table(VALUE hash)
{
hash_st_free(hash);
RHASH_ST_CLEAR(hash); RHASH_ST_CLEAR(hash);
} }
@ -1974,7 +1980,7 @@ rb_hash_rehash(VALUE hash)
rb_hash_foreach(hash, rb_hash_rehash_i, (VALUE)tmp); rb_hash_foreach(hash, rb_hash_rehash_i, (VALUE)tmp);
hash_st_free_and_clear_table(hash); hash_st_free(hash);
RHASH_ST_TABLE_SET(hash, tbl); RHASH_ST_TABLE_SET(hash, tbl);
RHASH_ST_CLEAR(tmp); RHASH_ST_CLEAR(tmp);
} }