Project

General

Profile

Bug #16121 » 0003-Remove-dead-code-paths-in-rb_hash_initialize_copy.diff.txt

[PATCH 3/4] Remove dead code paths in rb_hash_initialize_copy - dylants (Dylan Thacker-Smith), 08/23/2019 07:55 PM

 
From 9dce62bfcd950c6bd52f45e2f3eaac0a044130f9 Mon Sep 17 00:00:00 2001
From: Dylan Thacker-Smith <Dylan.Smith@shopify.com>
Date: Fri, 23 Aug 2019 15:48:35 -0400
Subject: [PATCH 3/4] Remove dead code paths in rb_hash_initialize_copy

Given that `RHASH_ST_TABLE_P(h)` is defined as `(!RHASH_AR_TABLE_P(h))`
it shouldn't be possible for a hash to be neither of these, so there
is no need for the removed `else if` blocks.
---
hash.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/hash.c b/hash.c
index ee5dc0e004..aeddf44d34 100644
--- a/hash.c
+++ b/hash.c
@@ -2805,17 +2805,11 @@ rb_hash_initialize_copy(VALUE hash, VALUE hash2)
if (RHASH_AR_TABLE_SIZE(hash))
rb_hash_rehash(hash);
}
- else if (RHASH_ST_TABLE_P(hash2)) {
+ else {
RHASH_ST_TABLE_SET(hash, st_copy(RHASH_ST_TABLE(hash2)));
if (RHASH_ST_TABLE(hash)->num_entries)
rb_hash_rehash(hash);
}
- else if (RHASH_AR_TABLE_P(hash)) {
- ar_clear(hash);
- }
- else if (RHASH_ST_TABLE_P(hash)) {
- st_clear(RHASH_ST_TABLE(hash));
- }
COPY_DEFAULT(hash, hash2);
--
2.21.0

(3-3/4)