mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 12:23:32 +01:00
prob-distr: Silence some coverity warnings.
This commit is contained in:
parent
c81b2b09ea
commit
08176c2396
3
changes/bug29805
Normal file
3
changes/bug29805
Normal file
@ -0,0 +1,3 @@
|
||||
o Minor bugfixes (probability distributions):
|
||||
- Refactor and improve parts of the probability distribution code that made
|
||||
Coverity complain. Fixes bug 29805; bugfix on 0.4.0.1-alpha.
|
@ -19,9 +19,22 @@ struct dist {
|
||||
const struct dist_ops *ops;
|
||||
};
|
||||
|
||||
/** Assign the right ops to dist.dist_ops */
|
||||
#define DIST_BASE(OPS) { .ops = (OPS) }
|
||||
|
||||
/** A compile-time type-checking macro for use with DIST_BASE_TYPED. */
|
||||
#ifdef __COVERITY___
|
||||
/* Disable type-checking if coverity is enabled, since they don't like it */
|
||||
#define TYPE_CHECK_OBJ(OPS, OBJ, TYPE) 0
|
||||
#else
|
||||
#define TYPE_CHECK_OBJ(OPS, OBJ, TYPE) \
|
||||
(0*sizeof(&(OBJ) - (const TYPE *)&(OBJ)))
|
||||
#endif
|
||||
|
||||
/** Macro to initialize a distribution with the right OPS, while making sure
|
||||
* that OBJ is of the right TYPE */
|
||||
#define DIST_BASE_TYPED(OPS, OBJ, TYPE) \
|
||||
DIST_BASE((OPS) + 0*sizeof(&(OBJ) - (const TYPE *)&(OBJ)))
|
||||
DIST_BASE((OPS) + TYPE_CHECK_OBJ(OPS,OBJ,TYPE))
|
||||
|
||||
const char *dist_name(const struct dist *);
|
||||
double dist_sample(const struct dist *);
|
||||
|
Loading…
Reference in New Issue
Block a user