aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2009-11-10 19:11:03 +0000
committerSimon Tatham <anakin@pobox.com>2009-11-10 19:11:03 +0000
commit9c95ea261980860cf74bc583417981960f91648b (patch)
treea58d7ffa609ddd8d11be9c752ed29f87e8593942
parentddbe9abe8aeaadfb79251f89321916071867eb78 (diff)
downloadpuzzles-9c95ea261980860cf74bc583417981960f91648b.zip
puzzles-9c95ea261980860cf74bc583417981960f91648b.tar.gz
puzzles-9c95ea261980860cf74bc583417981960f91648b.tar.bz2
puzzles-9c95ea261980860cf74bc583417981960f91648b.tar.xz
Add a precautionary pair of initialisations to placate optimisers,
and asserts to check that the preinitialised values are never actually used. [originally from svn r8745]
-rw-r--r--tree234.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tree234.c b/tree234.c
index 9699120..0010447 100644
--- a/tree234.c
+++ b/tree234.c
@@ -1182,6 +1182,7 @@ static node234 *split234_internal(tree234 *t, int index) {
/*
* Search down the tree to find the split point.
*/
+ halves[0] = halves[1] = NULL;
lparent = rparent = NULL;
pki = -1;
while (n) {
@@ -1273,6 +1274,8 @@ static node234 *split234_internal(tree234 *t, int index) {
*/
LOG((" fell off bottom, lroot is %p, rroot is %p\n",
halves[0], halves[1]));
+ assert(halves[0] != NULL);
+ assert(halves[1] != NULL);
lparent->counts[pki] = rparent->counts[0] = 0;
lparent->kids[pki] = rparent->kids[0] = NULL;
@@ -1475,6 +1478,7 @@ tree234 *copytree234(tree234 *t, copyfn234 copyfn, void *copyfnstate) {
* if not.)
*/
+#include <string.h>
#include <stdarg.h>
#define srealloc realloc