fix: return 0 if page's already dirty
This commit is contained in:
parent
c816f795cd
commit
c6b2b2f98a
|
@ -174,6 +174,13 @@ int tdbPagerWrite(SPager *pPager, SPage *pPage) {
|
||||||
for (ppPage = &pPager->pDirty; (*ppPage) && TDB_PAGE_PGNO(*ppPage) < TDB_PAGE_PGNO(pPage);
|
for (ppPage = &pPager->pDirty; (*ppPage) && TDB_PAGE_PGNO(*ppPage) < TDB_PAGE_PGNO(pPage);
|
||||||
ppPage = &((*ppPage)->pDirtyNext)) {
|
ppPage = &((*ppPage)->pDirtyNext)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (*ppPage && TDB_PAGE_PGNO(*ppPage) == TDB_PAGE_PGNO(pPage)) {
|
||||||
|
tdbUnrefPage(pPage);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
ASSERT(*ppPage == NULL || TDB_PAGE_PGNO(*ppPage) > TDB_PAGE_PGNO(pPage));
|
ASSERT(*ppPage == NULL || TDB_PAGE_PGNO(*ppPage) > TDB_PAGE_PGNO(pPage));
|
||||||
pPage->pDirtyNext = *ppPage;
|
pPage->pDirtyNext = *ppPage;
|
||||||
*ppPage = pPage;
|
*ppPage = pPage;
|
||||||
|
|
Loading…
Reference in New Issue