1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-10 01:02:56 +03:00

Extra asserts to prove that certain reported errors in btree.c are not really

errors. (CVS 3155)

FossilOrigin-Name: c64542d0e8efd6daecb037009474f4448793e4c0
This commit is contained in:
drh
2006-03-28 00:24:44 +00:00
parent d8f50c4957
commit 7aa8f8588b
3 changed files with 11 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
C Work\saround\sa\sbug\sin\sGCC\s4.0.2.\s(CVS\s3154) C Extra\sasserts\sto\sprove\sthat\scertain\sreported\serrors\sin\sbtree.c\sare\snot\sreally\nerrors.\s(CVS\s3155)
D 2006-03-26T20:49:18 D 2006-03-28T00:24:45
F Makefile.in 5d8dff443383918b700e495de42ec65bc1c8865b F Makefile.in 5d8dff443383918b700e495de42ec65bc1c8865b
F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -34,7 +34,7 @@ F src/alter.c 451b34fc4eb2475ca76a2e86b21e1030a9428091
F src/analyze.c 7d2b7ab9a9c2fd6e55700f69064dfdd3e36d7a8a F src/analyze.c 7d2b7ab9a9c2fd6e55700f69064dfdd3e36d7a8a
F src/attach.c d73a3505de3fb9e373d0a158978116c4212031d0 F src/attach.c d73a3505de3fb9e373d0a158978116c4212031d0
F src/auth.c 9ae84d2d94eb96195e04515715e08e85963e96c2 F src/auth.c 9ae84d2d94eb96195e04515715e08e85963e96c2
F src/btree.c 582f0fb985c3dc209d2904639dd2c3c4544ba90e F src/btree.c 05cff8249bcc1a15e19c6b9ade871844682b8a0f
F src/btree.h 40055cfc09defd1146bc5b922399c035f969e56d F src/btree.h 40055cfc09defd1146bc5b922399c035f969e56d
F src/build.c be0629119df8c1e09050a8fcbf182112f00e3b14 F src/build.c be0629119df8c1e09050a8fcbf182112f00e3b14
F src/callback.c d8c5ab1cd6f3b7182b2ee63bf53f1b69c0f74306 F src/callback.c d8c5ab1cd6f3b7182b2ee63bf53f1b69c0f74306
@@ -355,7 +355,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
P 80cda9f7ce83f2de6cd2fdaf6150bbc35b670fee P fe0920c7922bfdbefbc0107fb9170d98bec2dcef
R d92806f8ad5b57a82422a1562ac3eefb R 444a3e4a4674aa9d8e71f6503c2669c2
U drh U drh
Z cb468a32b49079c6cdf556c3d07ea774 Z 3c3d6534961b5bfe4745ed9f24024a53

View File

@@ -1 +1 @@
fe0920c7922bfdbefbc0107fb9170d98bec2dcef c64542d0e8efd6daecb037009474f4448793e4c0

View File

@@ -9,7 +9,7 @@
** May you share freely, never taking more than you give. ** May you share freely, never taking more than you give.
** **
************************************************************************* *************************************************************************
** $Id: btree.c,v 1.322 2006/03/23 14:03:00 drh Exp $ ** $Id: btree.c,v 1.323 2006/03/28 00:24:45 drh Exp $
** **
** This file implements a external (disk-based) database using BTrees. ** This file implements a external (disk-based) database using BTrees.
** For a detailed discussion of BTrees, refer to ** For a detailed discussion of BTrees, refer to
@@ -4825,6 +4825,7 @@ static int balance_nonroot(MemPage *pPage){
rc = sqlite3pager_write(pNew->aData); rc = sqlite3pager_write(pNew->aData);
if( rc ) goto balance_cleanup; if( rc ) goto balance_cleanup;
}else{ }else{
assert( i>0 );
rc = allocatePage(pBt, &pNew, &pgnoNew[i], pgnoNew[i-1], 0); rc = allocatePage(pBt, &pNew, &pgnoNew[i], pgnoNew[i-1], 0);
if( rc ) goto balance_cleanup; if( rc ) goto balance_cleanup;
apNew[i] = pNew; apNew[i] = pNew;
@@ -4976,6 +4977,8 @@ static int balance_nonroot(MemPage *pPage){
} }
} }
assert( j==nCell ); assert( j==nCell );
assert( nOld>0 );
assert( nNew>0 );
if( (pageFlags & PTF_LEAF)==0 ){ if( (pageFlags & PTF_LEAF)==0 ){
memcpy(&apNew[nNew-1]->aData[8], &apCopy[nOld-1]->aData[8], 4); memcpy(&apNew[nNew-1]->aData[8], &apCopy[nOld-1]->aData[8], 4);
} }