aboutsummaryrefslogtreecommitdiff
path: root/src/vdbesort.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2016-12-21 19:45:54 +0000
committerdrh <drh@noemail.net>2016-12-21 19:45:54 +0000
commita582b016983c5fc14971a8550f59c7e65fa5ae0d (patch)
treedb096dacb260e2fdaf90003d5ba0f99dc3212d13 /src/vdbesort.c
parentf99dd359d00fd5af78d8ccb4b7c27fc82f578ddb (diff)
downloadsqlite-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.c12
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;
}