Browse Source

Another GCCism.

tags/1.0.6
Vsevolod Stakhov 8 years ago
parent
commit
dd72c18a08
1 changed files with 14 additions and 10 deletions
  1. 14
    10
      contrib/libottery/ottery_global.c

+ 14
- 10
contrib/libottery/ottery_global.c View File

@@ -21,7 +21,11 @@
* Evaluate the condition 'x', while hinting to the compiler that it is
* likely to be false.
*/
#ifdef __GNUC__
#define UNLIKELY(x) __builtin_expect((x), 0)
#else
#define UNLIKELY(x)
#endif

/** Flag: true iff ottery_global_state_ is initialized. */
static int ottery_global_state_initialized_ = 0;
@@ -31,13 +35,13 @@ static struct ottery_state ottery_global_state_;

/** Initialize ottery_global_state_ if it has not been initialize. */
#define CHECK_INIT(rv) do { \
if (UNLIKELY(!ottery_global_state_initialized_)) { \
int err; \
if ((err = ottery_init(NULL))) { \
ottery_fatal_error_(OTTERY_ERR_FLAG_GLOBAL_PRNG_INIT|err); \
return rv; \
} \
} \
if (UNLIKELY(!ottery_global_state_initialized_)) { \
int err; \
if ((err = ottery_init(NULL))) { \
ottery_fatal_error_(OTTERY_ERR_FLAG_GLOBAL_PRNG_INIT|err); \
return rv; \
} \
} \
} while (0)

int
@@ -45,7 +49,7 @@ ottery_init(const struct ottery_config *cfg)
{
int n = ottery_st_init(&ottery_global_state_, cfg);
if (n == 0)
ottery_global_state_initialized_ = 1;
ottery_global_state_initialized_ = 1;
return n;
}

@@ -60,8 +64,8 @@ void
ottery_wipe(void)
{
if (ottery_global_state_initialized_) {
ottery_global_state_initialized_ = 0;
ottery_st_wipe(&ottery_global_state_);
ottery_global_state_initialized_ = 0;
ottery_st_wipe(&ottery_global_state_);
}
}


Loading…
Cancel
Save