Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a problem in kvmemRemoveNode. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | primary-keys |
Files: | files | file ages | folders |
SHA1: |
f3c424ddf36c112692de7d2252a7ff61 |
User & Date: | dan 2012-04-12 11:49:50.192 |
Context
2012-04-12
| ||
19:52 | Further fixes to things. check-in: 81fab25002 user: dan tags: primary-keys | |
11:49 | Fix a problem in kvmemRemoveNode. check-in: f3c424ddf3 user: dan tags: primary-keys | |
2012-04-11
| ||
18:48 | Fix some problems with REPLACE and other conflict handling. check-in: ff493aaa41 user: dan tags: primary-keys | |
Changes
Changes to src/kvmem.c.
︙ | ︙ | |||
342 343 344 345 346 347 348 | } return pNode; } /* Remove node pOld from the tree. pOld must be an element of the tree. */ static void kvmemRemoveNode(KVMem *p, KVMemNode *pOld){ | | | < > | | 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 | } return pNode; } /* Remove node pOld from the tree. pOld must be an element of the tree. */ static void kvmemRemoveNode(KVMem *p, KVMemNode *pOld){ KVMemNode **ppParent; /* Location of pointer to pOld */ KVMemNode *pBalance; /* Node to run kvmemBalance() on */ kvmemDataUnref(pOld->pData); pOld->pData = 0; ppParent = kvmemFromPtr(pOld, &p->pRoot); if( pOld->pBefore==0 && pOld->pAfter==0 ){ *ppParent = 0; pBalance = pOld->pUp; }else if( pOld->pBefore && pOld->pAfter ){ KVMemNode *pX, *pY; pX = kvmemFirst(pOld->pAfter); assert( pX->pBefore==0 ); *kvmemFromPtr(pX, 0) = pX->pAfter; pBalance = pX->pUp; pX->pAfter = pOld->pAfter; if( pX->pAfter ){ pX->pAfter->pUp = pX; }else{ assert( pBalance==pOld ); pBalance = pX; |
︙ | ︙ |