Another improvement to OP_Function and an improvement to OP_Move.
FossilOrigin-Name: 70b056fb6f60cdfbe24e4b77a1770eef064a73c6
This commit is contained in:
parent
76694c3ae5
commit
e09f43f8b7
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
||||
C A\ssimple\schange\sto\sthe\sOP_Function\sopcode\simproves\soverall\sperformance\sby\nabout\s0.5%.
|
||||
D 2013-11-21T03:43:12.554
|
||||
C Another\simprovement\sto\sOP_Function\sand\san\simprovement\sto\sOP_Move.
|
||||
D 2013-11-21T04:18:31.892
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in 8a07bebafbfda0eb67728f4bd15a36201662d1a1
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
@ -280,7 +280,7 @@ F src/update.c c05a0ee658f1a149e0960dfd110f3b8bd846bcb0
|
||||
F src/utf.c 6fc6c88d50448c469c5c196acf21617a24f90269
|
||||
F src/util.c 2fa6c821d28bbdbeec1b2a7b091a281c9ef8f918
|
||||
F src/vacuum.c 3728d74919d4fb1356f9e9a13e27773db60b7179
|
||||
F src/vdbe.c 9d8490d65b06d2e21dd0f0e6286c07e7f3095a48
|
||||
F src/vdbe.c bfbbaf9daddfd0228747e4e47677bd34dc306388
|
||||
F src/vdbe.h c06f0813f853566457ce9cfb1a4a4bc39a5da644
|
||||
F src/vdbeInt.h 0ac03c790b8ea4568b747550ba9bbf92a8e8feb2
|
||||
F src/vdbeapi.c 93a22a9ba2abe292d5c2cf304d7eb2e894dde0ed
|
||||
@ -1140,7 +1140,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
|
||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
||||
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
||||
P ecaac28a2e78aca148fc614fe54bf2706aed8be2
|
||||
R 33f1c98c35afb745f70ac2d0738f01fc
|
||||
P b890eefd57fbd189f7df611e82eb1fb4b197e1c3
|
||||
R f453cb4528248c0309ea050c9ba4ca77
|
||||
U drh
|
||||
Z a8c7ba243cd2d2fb4fb7b6cf27c27770
|
||||
Z 2b2e2a3a32727285c9b4dfbebd948b02
|
||||
|
@ -1 +1 @@
|
||||
b890eefd57fbd189f7df611e82eb1fb4b197e1c3
|
||||
70b056fb6f60cdfbe24e4b77a1770eef064a73c6
|
11
src/vdbe.c
11
src/vdbe.c
@ -1081,15 +1081,15 @@ case OP_Move: {
|
||||
int p1; /* Register to copy from */
|
||||
int p2; /* Register to copy to */
|
||||
|
||||
n = pOp->p3 + 1;
|
||||
n = pOp->p3;
|
||||
p1 = pOp->p1;
|
||||
p2 = pOp->p2;
|
||||
assert( n>0 && p1>0 && p2>0 );
|
||||
assert( n>=0 && p1>0 && p2>0 );
|
||||
assert( p1+n<=p2 || p2+n<=p1 );
|
||||
|
||||
pIn1 = &aMem[p1];
|
||||
pOut = &aMem[p2];
|
||||
while( n-- ){
|
||||
do{
|
||||
assert( pOut<=&aMem[(p->nMem-p->nCursor)] );
|
||||
assert( pIn1<=&aMem[(p->nMem-p->nCursor)] );
|
||||
assert( memIsValid(pIn1) );
|
||||
@ -1106,7 +1106,7 @@ case OP_Move: {
|
||||
REGISTER_TRACE(p2++, pOut);
|
||||
pIn1++;
|
||||
pOut++;
|
||||
}
|
||||
}while( n-- );
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1532,7 +1532,8 @@ case OP_Function: {
|
||||
|
||||
/* Copy the result of the function into register P3 */
|
||||
sqlite3VdbeChangeEncoding(&ctx.s, encoding);
|
||||
sqlite3VdbeMemMove(pOut, &ctx.s);
|
||||
assert( pOut->flags==MEM_Null );
|
||||
memcpy(pOut, &ctx.s, sizeof(Mem));
|
||||
if( sqlite3VdbeMemTooBig(pOut) ){
|
||||
goto too_big;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user