mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-16 23:02:26 +03:00
Expand the getVarint32() macro in a few places, as the C-compiler seems to
be able to optimize better when that macro is expanded manually. FossilOrigin-Name: cd4fe34b98bf5ce26f3596c717edb73932f3b46ad6e9b4934d06b7b3c176a0d6
This commit is contained in:
@@ -2739,7 +2739,11 @@ op_column_restart:
|
||||
assert( pC->szRow<=65536 ); /* Maximum page size is 64KiB */
|
||||
}
|
||||
pC->cacheStatus = p->cacheCtr;
|
||||
pC->iHdrOffset = getVarint32(pC->aRow, aOffset[0]);
|
||||
if( (aOffset[0] = pC->aRow[0])<0x80 ){
|
||||
pC->iHdrOffset = 1;
|
||||
}else{
|
||||
pC->iHdrOffset = sqlite3GetVarint32(pC->aRow, aOffset);
|
||||
}
|
||||
pC->nHdrParsed = 0;
|
||||
|
||||
if( pC->szRow<aOffset[0] ){ /*OPTIMIZATION-IF-FALSE*/
|
||||
|
||||
@@ -4419,14 +4419,22 @@ int sqlite3VdbeRecordCompareWithSkip(
|
||||
** two elements in the keys are equal. Fix the various stack variables so
|
||||
** that this routine begins comparing at the second field. */
|
||||
if( bSkip ){
|
||||
u32 s1;
|
||||
idx1 = 1 + getVarint32(&aKey1[1], s1);
|
||||
u32 s1 = aKey1[1];
|
||||
if( s1<0x80 ){
|
||||
idx1 = 2;
|
||||
}else{
|
||||
idx1 = 1 + sqlite3GetVarint32(&aKey1[1], &s1);
|
||||
}
|
||||
szHdr1 = aKey1[0];
|
||||
d1 = szHdr1 + sqlite3VdbeSerialTypeLen(s1);
|
||||
i = 1;
|
||||
pRhs++;
|
||||
}else{
|
||||
idx1 = getVarint32(aKey1, szHdr1);
|
||||
if( (szHdr1 = aKey1[0])<0x80 ){
|
||||
idx1 = 1;
|
||||
}else{
|
||||
idx1 = sqlite3GetVarint32(aKey1, &szHdr1);
|
||||
}
|
||||
d1 = szHdr1;
|
||||
i = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user