Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Updates to a comment to keep it in alignment to the changes on this branch. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | deferred-free-space |
Files: | files | file ages | folders |
SHA3-256: |
7499f74351415e601eb48eff6b6fccd3 |
User & Date: | drh 2019-02-11 12:51:39.303 |
Context
2019-02-11
| ||
17:22 | Fix test cases. Avoid unnecessary tests for MemPage.nFree less than zero. (check-in: 480a5090be user: drh tags: deferred-free-space) | |
12:51 | Updates to a comment to keep it in alignment to the changes on this branch. (check-in: 7499f74351 user: drh tags: deferred-free-space) | |
2019-02-09
| ||
22:33 | Fix a page-cache reference leak in the btree balancer when there is a corrupt database. (check-in: 9285899120 user: drh tags: deferred-free-space) | |
Changes
Changes to src/btree.c.
︙ | ︙ | |||
1429 1430 1431 1432 1433 1434 1435 | ** or fewer fragmented bytes. In this case it is faster to move the ** two (or one) blocks of cells using memmove() and add the required ** offsets to each pointer in the cell-pointer array than it is to ** reconstruct the entire page. */ if( (int)data[hdr+7]<=nMaxFrag ){ int iFree = get2byte(&data[hdr+1]); | | | | 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 | ** or fewer fragmented bytes. In this case it is faster to move the ** two (or one) blocks of cells using memmove() and add the required ** offsets to each pointer in the cell-pointer array than it is to ** reconstruct the entire page. */ if( (int)data[hdr+7]<=nMaxFrag ){ int iFree = get2byte(&data[hdr+1]); /* If the initial freeblock offset were out of bounds, that would have ** been detected by btreeComputeFreeSpace() when it was computing the ** number of free bytes on the page. */ assert( iFree<=usableSize-4 ); if( iFree ){ int iFree2 = get2byte(&data[iFree]); if( iFree2>usableSize-4 ) return SQLITE_CORRUPT_PAGE(pPage); if( 0==iFree2 || (data[iFree2]==0 && data[iFree2+1]==0) ){ u8 *pEnd = &data[cellOffset + nCell*2]; |
︙ | ︙ |