From 086e4913b5e0a959c50ee9ab135a22b7a23f479f Mon Sep 17 00:00:00 2001 From: drh Date: Fri, 14 Oct 2011 22:57:03 +0000 Subject: [PATCH] Fix a few minor and harmless clang warnings in FTS3 and RTREE. FossilOrigin-Name: b3324f6cc27c3bfb32b12eacace2fc731c2dd644 --- ext/fts3/fts3.c | 11 +++++++---- ext/fts3/fts3_expr.c | 8 ++++++-- ext/rtree/rtree.c | 7 +++++-- manifest | 16 ++++++++-------- manifest.uuid | 2 +- 5 files changed, 27 insertions(+), 17 deletions(-) diff --git a/ext/fts3/fts3.c b/ext/fts3/fts3.c index b3780b8349..e66e8fe58b 100644 --- a/ext/fts3/fts3.c +++ b/ext/fts3/fts3.c @@ -438,7 +438,7 @@ static void fts3GetReverseVarint( sqlite3_int64 *pVal ){ sqlite3_int64 iVal; - char *p = *pp; + char *p; /* Pointer p now points at the first byte past the varint we are ** interested in. So, unless the doclist is corrupt, the 0x80 bit is @@ -839,7 +839,7 @@ static char *fts3WriteExprList(Fts3Table *p, const char *zFunc, int *pRc){ ** This function is used when parsing the "prefix=" FTS4 parameter. */ static int fts3GobbleInt(const char **pp, int *pnOut){ - const char *p = *pp; /* Iterator pointer */ + const char *p; /* Iterator pointer */ int nInt = 0; /* Output value */ for(p=*pp; p[0]>='0' && p[0]<='9'; p++){ @@ -1429,6 +1429,7 @@ static int fts3ScanInteriorNode( } zBuffer = zNew; } + assert( zBuffer ); memcpy(&zBuffer[nPrefix], zCsr, nSuffix); nBuffer = nPrefix + nSuffix; zCsr += nSuffix; @@ -2865,7 +2866,7 @@ static int fts3RollbackMethod(sqlite3_vtab *pVtab){ */ static void fts3ReversePoslist(char *pStart, char **ppPoslist){ char *p = &(*ppPoslist)[-2]; - char c; + char c = 0; while( p>pStart && (c=*p--)==0 ); while( p>pStart && (*p & 0x80) | c ){ @@ -4335,7 +4336,9 @@ static int fts3EvalNearTest(Fts3Expr *pExpr, int *pRc){ aPoslist = pExpr->pRight->pPhrase->doclist.pList; nToken = pExpr->pRight->pPhrase->nToken; for(p=pExpr->pLeft; p && res; p=p->pLeft){ - int nNear = p->pParent->nNear; + int nNear; + assert( p->pParent && p->pParent->pLeft==p ); + nNear = p->pParent->nNear; Fts3Phrase *pPhrase = ( p->eType==FTSQUERY_NEAR ? p->pRight->pPhrase : p->pPhrase ); diff --git a/ext/fts3/fts3_expr.c b/ext/fts3/fts3_expr.c index 7eb2962d44..6b2b414aab 100644 --- a/ext/fts3/fts3_expr.c +++ b/ext/fts3/fts3_expr.c @@ -302,8 +302,12 @@ static int getNextString( p->pPhrase->nToken = nToken; zBuf = (char *)&p->pPhrase->aToken[nToken]; - memcpy(zBuf, zTemp, nTemp); - sqlite3_free(zTemp); + if( zTemp ){ + memcpy(zBuf, zTemp, nTemp); + sqlite3_free(zTemp); + }else{ + assert( nTemp==0 ); + } for(jj=0; jjpPhrase->nToken; jj++){ p->pPhrase->aToken[jj].z = zBuf; diff --git a/ext/rtree/rtree.c b/ext/rtree/rtree.c index 2375069e3e..55385d7fd7 100644 --- a/ext/rtree/rtree.c +++ b/ext/rtree/rtree.c @@ -1268,7 +1268,8 @@ static int rtreeFilter( rc = SQLITE_NOMEM; }else{ memset(pCsr->aConstraint, 0, sizeof(RtreeConstraint)*argc); - assert( (idxStr==0 && argc==0) || (int)strlen(idxStr)==argc*2 ); + assert( (idxStr==0 && argc==0) + || (idxStr && (int)strlen(idxStr)==argc*2) ); for(ii=0; iiaConstraint[ii]; p->op = idxStr[ii*2]; @@ -1569,7 +1570,9 @@ static int ChooseLeaf( float fMinGrowth = 0.0; float fMinArea = 0.0; +#if VARIANT_RSTARTREE_CHOOSESUBTREE float fMinOverlap = 0.0; +#endif int nCell = NCELL(pNode); RtreeCell cell; @@ -1616,6 +1619,7 @@ static int ChooseLeaf( || (overlap==fMinOverlap && growth==fMinGrowth && area