Early detection of database corruption in balance_deeper().
FossilOrigin-Name: 61c2233654158e65a3d3baeea947903a919a569fcc4a5b342b2e9a68cec1b6f3
This commit is contained in:
@@ -446,6 +446,26 @@
|
||||
# define NEVER(X) (X)
|
||||
#endif
|
||||
|
||||
/*
|
||||
** The harmless(X) macro indicates that expression X is usually false
|
||||
** but can be true without causing any problems, but we don't know of
|
||||
** any way to cause X to be true.
|
||||
**
|
||||
** In debugging and testing builds, this macro will abort if X is ever
|
||||
** true. In this way, developers are alerted to a possible test case
|
||||
** that causes X to be true. If a harmless macro ever fails, that is
|
||||
** an opportunity to change the macro into a testcase() and add a new
|
||||
** test case to the test suite.
|
||||
**
|
||||
** For normal production builds, harmless(X) is a no-op, since it does
|
||||
** not matter whether expression X is true or false.
|
||||
*/
|
||||
#ifdef SQLITE_DEBUG
|
||||
# define harmless(X) assert(!(X));
|
||||
#else
|
||||
# define harmless(X)
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Some conditionals are optimizations only. In other words, if the
|
||||
** conditionals are replaced with a constant 1 (true) or 0 (false) then
|
||||
|
||||
Reference in New Issue
Block a user