mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
parent
9511b4c8fa
commit
e89ebdcb87
Notes:
git
2020-03-11 16:43:36 +09:00
Merged-By: k0kubun <takashikkbn@gmail.com>
3 changed files with 5 additions and 5 deletions
|
@ -1,7 +1,7 @@
|
||||||
/* This is a public domain general purpose hash table package
|
/* This is a public domain general purpose hash table package
|
||||||
originally written by Peter Moore @ UCB.
|
originally written by Peter Moore @ UCB.
|
||||||
|
|
||||||
The hash table data strutures were redesigned and the package was
|
The hash table data structures were redesigned and the package was
|
||||||
rewritten by Vladimir Makarov <vmakarov@redhat.com>. */
|
rewritten by Vladimir Makarov <vmakarov@redhat.com>. */
|
||||||
|
|
||||||
#ifndef RUBY_ST_H
|
#ifndef RUBY_ST_H
|
||||||
|
|
|
@ -230,7 +230,7 @@ static inline unsigned int
|
||||||
nlz_int32(uint32_t x)
|
nlz_int32(uint32_t x)
|
||||||
{
|
{
|
||||||
#if defined(_MSC_VER) && defined(__AVX2__)
|
#if defined(_MSC_VER) && defined(__AVX2__)
|
||||||
/* Note: It seems there is no such tihng like __LZCNT__ predefined in MSVC.
|
/* Note: It seems there is no such thing like __LZCNT__ predefined in MSVC.
|
||||||
* AMD CPUs have had this instruction for decades (since K10) but for
|
* AMD CPUs have had this instruction for decades (since K10) but for
|
||||||
* Intel, Haswell is the oldest one. We need to use __AVX2__ for maximum
|
* Intel, Haswell is the oldest one. We need to use __AVX2__ for maximum
|
||||||
* safety. */
|
* safety. */
|
||||||
|
|
6
st.c
6
st.c
|
@ -1073,7 +1073,7 @@ rebuild_table_if_necessary (st_table *tab)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Insert (KEY, VALUE) into table TAB and return zero. If there is
|
/* Insert (KEY, VALUE) into table TAB and return zero. If there is
|
||||||
already entry with KEY in the table, return nonzero and and update
|
already entry with KEY in the table, return nonzero and update
|
||||||
the value of the found entry. */
|
the value of the found entry. */
|
||||||
int
|
int
|
||||||
st_insert(st_table *tab, st_data_t key, st_data_t value)
|
st_insert(st_table *tab, st_data_t key, st_data_t value)
|
||||||
|
@ -1155,7 +1155,7 @@ st_add_direct(st_table *tab, st_data_t key, st_data_t value)
|
||||||
|
|
||||||
/* Insert (FUNC(KEY), VALUE) into table TAB and return zero. If
|
/* Insert (FUNC(KEY), VALUE) into table TAB and return zero. If
|
||||||
there is already entry with KEY in the table, return nonzero and
|
there is already entry with KEY in the table, return nonzero and
|
||||||
and update the value of the found entry. */
|
update the value of the found entry. */
|
||||||
int
|
int
|
||||||
st_insert2(st_table *tab, st_data_t key, st_data_t value,
|
st_insert2(st_table *tab, st_data_t key, st_data_t value,
|
||||||
st_data_t (*func)(st_data_t))
|
st_data_t (*func)(st_data_t))
|
||||||
|
@ -1464,7 +1464,7 @@ st_general_foreach(st_table *tab, st_foreach_check_callback_func *func, st_updat
|
||||||
|
|
||||||
entries = tab->entries;
|
entries = tab->entries;
|
||||||
/* The bound can change inside the loop even without rebuilding
|
/* The bound can change inside the loop even without rebuilding
|
||||||
the table, e.g. by an entry inesrtion. */
|
the table, e.g. by an entry insertion. */
|
||||||
for (i = tab->entries_start; i < tab->entries_bound; i++) {
|
for (i = tab->entries_start; i < tab->entries_bound; i++) {
|
||||||
curr_entry_ptr = &entries[i];
|
curr_entry_ptr = &entries[i];
|
||||||
if (EXPECT(DELETED_ENTRY_P(curr_entry_ptr), 0))
|
if (EXPECT(DELETED_ENTRY_P(curr_entry_ptr), 0))
|
||||||
|
|
Loading…
Reference in a new issue