diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-07-06 15:11:53 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-07-06 15:11:53 +0000 |
commit | 783b3c8d5a32f086d435a7f7ecf02d270fa8e133 (patch) | |
tree | ab53c78dd9ede690702b670a15c7d7ad681c6825 /st.c | |
parent | ea74da0c6c71edf8025ff67fbf445251d512acf1 (diff) | |
download | ruby-783b3c8d5a32f086d435a7f7ecf02d270fa8e133.tar.gz |
st.c: remove equality checks
* st.c (st_update): remove equality checks, callers should ensure
the equality, otherwise the behavior is undefined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'st.c')
-rw-r--r-- | st.c | 12 |
1 files changed, 0 insertions, 12 deletions
@@ -843,16 +843,10 @@ st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data switch (retval) { case ST_CONTINUE: if (!existing) { - if (key != old_key) hash_val = do_hash(key, table); add_packed_direct(table, key, value, hash_val); break; } - if (old_key != PKEY(table, i)) return -1; if (old_key != key) { - if (do_hash(key, table) != hash_val && - !EQUAL(table, key, old_key)) { - return -1; - } PKEY(table, i) = key; } PVAL_SET(table, i, value); @@ -879,16 +873,10 @@ st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data switch (retval) { case ST_CONTINUE: if (!existing) { - if (key != old_key) hash_val = do_hash(key, table); add_direct(table, key, value, hash_val, hash_pos(hash_val, table->num_bins)); break; } - if (old_key != ptr->key) return -1; if (old_key != key) { - if (do_hash(key, table) != hash_val && - !EQUAL(table, key, old_key)) { - return -1; - } ptr->key = key; } ptr->record = value; |