Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a (harmless) valgrind warning in the rtree extension. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a94b9a395e0be9549d8c28e2b86b995c |
User & Date: | dan 2010-12-02 11:24:58.000 |
Context
2010-12-02
| ||
14:47 | Exclude a test case from the inmemory_journal permutation of multiplex.test. (check-in: 474196d645 user: dan tags: trunk) | |
11:24 | Fix a (harmless) valgrind warning in the rtree extension. (check-in: a94b9a395e user: dan tags: trunk) | |
06:08 | Update misc7.test to account for EQP changes. (check-in: 917af565ac user: dan tags: trunk) | |
Changes
Changes to ext/rtree/rtree.c.
︙ | ︙ | |||
889 890 891 892 893 894 895 896 897 898 899 900 901 902 | ** Return SQLITE_OK if successful or an SQLite error code if an error ** occurs within a geometry callback. */ static int testRtreeCell(Rtree *pRtree, RtreeCursor *pCursor, int *pbEof){ RtreeCell cell; int ii; int bRes = 0; nodeGetCell(pRtree, pCursor->pNode, pCursor->iCell, &cell); for(ii=0; bRes==0 && ii<pCursor->nConstraint; ii++){ RtreeConstraint *p = &pCursor->aConstraint[ii]; double cell_min = DCOORD(cell.aCoord[(p->iCoord>>1)*2]); double cell_max = DCOORD(cell.aCoord[(p->iCoord>>1)*2+1]); | > | 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 | ** Return SQLITE_OK if successful or an SQLite error code if an error ** occurs within a geometry callback. */ static int testRtreeCell(Rtree *pRtree, RtreeCursor *pCursor, int *pbEof){ RtreeCell cell; int ii; int bRes = 0; int rc = SQLITE_OK; nodeGetCell(pRtree, pCursor->pNode, pCursor->iCell, &cell); for(ii=0; bRes==0 && ii<pCursor->nConstraint; ii++){ RtreeConstraint *p = &pCursor->aConstraint[ii]; double cell_min = DCOORD(cell.aCoord[(p->iCoord>>1)*2]); double cell_max = DCOORD(cell.aCoord[(p->iCoord>>1)*2+1]); |
︙ | ︙ | |||
914 915 916 917 918 919 920 | break; case RTREE_EQ: bRes = (p->rValue>cell_max || p->rValue<cell_min); break; default: { | < < < < | | 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 | break; case RTREE_EQ: bRes = (p->rValue>cell_max || p->rValue<cell_min); break; default: { assert( p->op==RTREE_MATCH ); rc = testRtreeGeom(pRtree, p, &cell, &bRes); bRes = !bRes; break; } } } *pbEof = bRes; return rc; } /* ** Test if the cell that cursor pCursor currently points to ** would be filtered (excluded) by the constraints in the ** pCursor->aConstraint[] array. If so, set *pbEof to true before ** returning. If the cell is not filtered (excluded) by the constraints, |
︙ | ︙ | |||
1010 1011 1012 1013 1014 1015 1016 | if( iHeight==0 ){ rc = testRtreeEntry(pRtree, pCursor, &isEof); }else{ rc = testRtreeCell(pRtree, pCursor, &isEof); } if( rc!=SQLITE_OK || isEof || iHeight==0 ){ | | < | | > | | 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 | if( iHeight==0 ){ rc = testRtreeEntry(pRtree, pCursor, &isEof); }else{ rc = testRtreeCell(pRtree, pCursor, &isEof); } if( rc!=SQLITE_OK || isEof || iHeight==0 ){ goto descend_to_cell_out; } iRowid = nodeGetRowid(pRtree, pCursor->pNode, pCursor->iCell); rc = nodeAcquire(pRtree, iRowid, pCursor->pNode, &pChild); if( rc!=SQLITE_OK ){ goto descend_to_cell_out; } nodeRelease(pRtree, pCursor->pNode); pCursor->pNode = pChild; isEof = 1; for(ii=0; isEof && ii<NCELL(pChild); ii++){ pCursor->iCell = ii; rc = descendToCell(pRtree, pCursor, iHeight-1, &isEof); if( rc!=SQLITE_OK ){ goto descend_to_cell_out; } } if( isEof ){ assert( pCursor->pNode==pChild ); nodeReference(pSavedNode); nodeRelease(pRtree, pChild); pCursor->pNode = pSavedNode; pCursor->iCell = iSavedCell; } descend_to_cell_out: *pEof = isEof; return rc; } /* ** One of the cells in node pNode is guaranteed to have a 64-bit ** integer value equal to iRowid. Return the index of this cell. */ static int nodeRowidIndex( |
︙ | ︙ |