diff options
author | Hans-Christoph Steiner <hans@eds.org> | 2014-10-16 22:51:35 -0400 |
---|---|---|
committer | Hans-Christoph Steiner <hans@eds.org> | 2014-10-16 22:51:35 -0400 |
commit | 569c6676a6ddb0ff73821d7693b5e18ddef809b9 (patch) | |
tree | 833538da7bba39105daff45e265aef386a200acd /src/test_stat.c | |
parent | 08119c361d1181b3e8f1abb429236e488a664753 (diff) |
Imported Upstream version 3.2.0upstream
Diffstat (limited to 'src/test_stat.c')
-rw-r--r-- | src/test_stat.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/test_stat.c b/src/test_stat.c index d4c902b..615df3d 100644 --- a/src/test_stat.c +++ b/src/test_stat.c @@ -397,6 +397,7 @@ static int statNext(sqlite3_vtab_cursor *pCursor){ sqlite3_free(pCsr->zPath); pCsr->zPath = 0; +statNextRestart: if( pCsr->aPage[0].pPg==0 ){ rc = sqlite3_step(pCsr->pStmt); if( rc==SQLITE_ROW ){ @@ -448,11 +449,11 @@ static int statNext(sqlite3_vtab_cursor *pCursor){ p->iCell++; } - while( !p->iRightChildPg || p->iCell>p->nCell ){ + if( !p->iRightChildPg || p->iCell>p->nCell ){ statClearPage(p); if( pCsr->iPage==0 ) return statNext(pCursor); pCsr->iPage--; - p = &pCsr->aPage[pCsr->iPage]; + goto statNextRestart; /* Tail recursion */ } pCsr->iPage++; assert( p==&pCsr->aPage[pCsr->iPage-1] ); |