diff options
author | drh <drh@noemail.net> | 2016-12-21 19:45:54 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2016-12-21 19:45:54 +0000 |
commit | a582b016983c5fc14971a8550f59c7e65fa5ae0d (patch) | |
tree | db096dacb260e2fdaf90003d5ba0f99dc3212d13 /src/vdbesort.c | |
parent | f99dd359d00fd5af78d8ccb4b7c27fc82f578ddb (diff) | |
download | sqlite-a582b016983c5fc14971a8550f59c7e65fa5ae0d.tar.gz sqlite-a582b016983c5fc14971a8550f59c7e65fa5ae0d.zip |
Simplifications to the way UnpackedRecord objects are allocated. Smaller
and faster code that also fixes a subtle (currently unreachable) bug.
FossilOrigin-Name: f7ab01f254cd9d7006b8dec29adb234a671b8e6f
Diffstat (limited to 'src/vdbesort.c')
-rw-r--r-- | src/vdbesort.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/vdbesort.c b/src/vdbesort.c index 52f08bfb4..631fb1961 100644 --- a/src/vdbesort.c +++ b/src/vdbesort.c @@ -1327,12 +1327,8 @@ static int vdbeSorterOpenTempFile( */ static int vdbeSortAllocUnpacked(SortSubtask *pTask){ if( pTask->pUnpacked==0 ){ - char *pFree; - pTask->pUnpacked = sqlite3VdbeAllocUnpackedRecord( - pTask->pSorter->pKeyInfo, 0, 0, &pFree - ); - assert( pTask->pUnpacked==(UnpackedRecord*)pFree ); - if( pFree==0 ) return SQLITE_NOMEM_BKPT; + pTask->pUnpacked = sqlite3VdbeAllocUnpackedRecord(pTask->pSorter->pKeyInfo); + if( pTask->pUnpacked==0 ) return SQLITE_NOMEM_BKPT; pTask->pUnpacked->nField = pTask->pSorter->pKeyInfo->nField; pTask->pUnpacked->errCode = 0; } @@ -2733,9 +2729,7 @@ int sqlite3VdbeSorterCompare( r2 = pSorter->pUnpacked; pKeyInfo = pCsr->pKeyInfo; if( r2==0 ){ - char *p; - r2 = pSorter->pUnpacked = sqlite3VdbeAllocUnpackedRecord(pKeyInfo,0,0,&p); - assert( pSorter->pUnpacked==(UnpackedRecord*)p ); + r2 = pSorter->pUnpacked = sqlite3VdbeAllocUnpackedRecord(pKeyInfo); if( r2==0 ) return SQLITE_NOMEM_BKPT; r2->nField = nKeyCol; } |