Use powerof2(). Remove single-use variable.

Submitted by:	Conrad Meyer
Differential Revision:	https://reviews.freebsd.org/D1724
MFC after:	1 week
This commit is contained in:
Konstantin Belousov 2015-01-30 15:32:35 +00:00
parent 99a2011188
commit 803fc2ca26

View File

@ -876,7 +876,6 @@ digest_dynamic1(Obj_Entry *obj, int early, const Elf_Dyn **dyn_rpath,
const Elf32_Word *hashval;
Elf32_Word bkt, nmaskwords;
int bloom_size32;
bool nmw_power2;
int plttype = DT_REL;
*dyn_rpath = NULL;
@ -986,16 +985,15 @@ digest_dynamic1(Obj_Entry *obj, int early, const Elf_Dyn **dyn_rpath,
obj->symndx_gnu = hashtab[1];
nmaskwords = hashtab[2];
bloom_size32 = (__ELF_WORD_SIZE / 32) * nmaskwords;
/* Number of bitmask words is required to be power of 2 */
nmw_power2 = ((nmaskwords & (nmaskwords - 1)) == 0);
obj->maskwords_bm_gnu = nmaskwords - 1;
obj->shift2_gnu = hashtab[3];
obj->bloom_gnu = (Elf_Addr *) (hashtab + 4);
obj->buckets_gnu = hashtab + 4 + bloom_size32;
obj->chain_zero_gnu = obj->buckets_gnu + obj->nbuckets_gnu -
obj->symndx_gnu;
obj->valid_hash_gnu = nmw_power2 && obj->nbuckets_gnu > 0 &&
obj->buckets_gnu != NULL;
/* Number of bitmask words is required to be power of 2 */
obj->valid_hash_gnu = powerof2(nmaskwords) &&
obj->nbuckets_gnu > 0 && obj->buckets_gnu != NULL;
}
break;