From 5ff75873a98fa9f35a80cc7dc092964d0504de8f Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 19 Nov 2012 08:30:10 -0500 Subject: Initialize IMPORTED GLOBAL targets on reconfigure (#13702) Since commit ca39c5cd (Optionally allow IMPORTED targets to be globally visible, 2012-01-25) cmGlobalGenerator has a second member that tracks targets with global scope. We must initialize the new 'ImportedTargets' member wherever the old 'TotalTargets' member is initialized. Without this initialization the ImportedTargets member is left with dangling pointers during a same-process re-configuration. --- Source/cmGlobalGenerator.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 8dce053..9059e8a 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -817,6 +817,7 @@ void cmGlobalGenerator::Configure() this->LocalGenerators.clear(); this->TargetDependencies.clear(); this->TotalTargets.clear(); + this->ImportedTargets.clear(); this->LocalGeneratorToTargetMap.clear(); this->ProjectMap.clear(); this->RuleHashes.clear(); -- cgit v0.12 ty_CID_1251203'>Coverity_CID_1251203 Tcl is a high-level, general-purpose, interpreted, dynamic programming language. It was designed with the goal of being very simple but powerful.
summaryrefslogtreecommitdiffstats
path: root/libtommath/bn_mp_cnt_lsb.c
blob: 4b2d206ebe06e5ae3f761a7dd7e6859d7679b538 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "tommath_private.h"
#ifdef BN_MP_CNT_LSB_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
/* SPDX-License-Identifier: Unlicense */

static const int lnz[16] = {
   4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0
};

/* Counts the number of lsbs which are zero before the first zero bit */
int mp_cnt_lsb(const mp_int *a)
{
   int x;
   mp_digit q, qq;

   /* easy out */
   if (MP_IS_ZERO(a)) {
      return 0;
   }

   /* scan lower digits until non-zero */
   for (x = 0; (x < a->used) && (a->dp[x] == 0u); x++) {}
   q = a->dp[x];
   x *= MP_DIGIT_BIT;

   /* now scan this digit until a 1 is found */
   if ((q & 1u) == 0u) {
      do {
         qq  = q & 15u;
         x  += lnz[qq];
         q >>= 4;
      } while (qq == 0u);
   }
   return x;
}

#endif