1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-10 01:02:56 +03:00

Remove unnecessary calls to memAboutToChange() in vdbe.c. An affinity

change no longer invalidates shallow copies.

FossilOrigin-Name: afb0fd0b0421c42630c5e6e5e8811aca634bc9d0
This commit is contained in:
drh
2010-09-30 18:12:01 +00:00
parent 025586a259
commit 6b87056570
3 changed files with 10 additions and 18 deletions

View File

@@ -1,8 +1,8 @@
-----BEGIN PGP SIGNED MESSAGE----- -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 Hash: SHA1
C Do\scorrect\saffinity\stransformations\son\sfloating\spoint\svalues\swhich\shave\na\sdecimal\spoint\sat\sthe\sbeginning\sor\send\sof\sthe\smantissa.\nTicket\s[3998683a16a7076e08f5]. C Remove\sunnecessary\scalls\sto\smemAboutToChange()\sin\svdbe.c.\s\sAn\saffinity\nchange\sno\slonger\sinvalidates\sshallow\scopies.
D 2010-09-30T17:33:12 D 2010-09-30T18:12:02
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in c599a15d268b1db2aeadea19df2adc3bf2eb6bee F Makefile.in c599a15d268b1db2aeadea19df2adc3bf2eb6bee
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -228,7 +228,7 @@ F src/update.c 227e6cd512108b84f69421fc6c7aa1b83d60d6e0
F src/utf.c 1baeeac91707a4df97ccc6141ec0f808278af685 F src/utf.c 1baeeac91707a4df97ccc6141ec0f808278af685
F src/util.c cd78524566fe45671863eee78685969a4bfd4e4c F src/util.c cd78524566fe45671863eee78685969a4bfd4e4c
F src/vacuum.c 924bd1bcee2dfb05376f79845bd3b4cec7b54b2f F src/vacuum.c 924bd1bcee2dfb05376f79845bd3b4cec7b54b2f
F src/vdbe.c 447577ca9db7cccac30dd8ea07aeb6a4ddee9cde F src/vdbe.c e1aa917961e69f71c80f46ce231b496d3c841ae1
F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2 F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2
F src/vdbeInt.h 7f4cf1b2b69bef3a432b1f23dfebef57275436b4 F src/vdbeInt.h 7f4cf1b2b69bef3a432b1f23dfebef57275436b4
F src/vdbeapi.c 03cddfa4f85cadf608c0d28ff6b622b7da432446 F src/vdbeapi.c 03cddfa4f85cadf608c0d28ff6b622b7da432446
@@ -874,14 +874,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P 43fef1cab6315f837782ea601d5a2aeb9843ab3c P ca154f97a590745539b2cbfd77eb319fd7392a40
R 9f0571eacddb9a3dd22902b2fc6da09d R 748449bce6ae506eaa073ea594abdada
U drh U drh
Z c3bfcfff0e351511af94c6133a9e5932 Z 093ac075ab4b1886bb1eccb584418581
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux) Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFMpMncoxKgR168RlERApVjAJ9CgWo7czjJJMuzPPhDGIuxcWDpSACeLMY+ iD8DBQFMpNL1oxKgR168RlERAjjtAJ4+t7sulYFx05+58t1+K8swwMqAWQCfbEoM
2nv8gkZ9kYhTsRmCj46G7ik= G6/RegdDSppspf4YTh1aD/Y=
=tJZ/ =7FrQ
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----

View File

@@ -1 +1 @@
ca154f97a590745539b2cbfd77eb319fd7392a40 afb0fd0b0421c42630c5e6e5e8811aca634bc9d0

View File

@@ -1541,7 +1541,6 @@ case OP_MustBeInt: { /* jump, in1 */
*/ */
case OP_RealAffinity: { /* in1 */ case OP_RealAffinity: { /* in1 */
pIn1 = &aMem[pOp->p1]; pIn1 = &aMem[pOp->p1];
memAboutToChange(p, pIn1);
if( pIn1->flags & MEM_Int ){ if( pIn1->flags & MEM_Int ){
sqlite3VdbeMemRealify(pIn1); sqlite3VdbeMemRealify(pIn1);
} }
@@ -1584,7 +1583,6 @@ case OP_ToText: { /* same as TK_TO_TEXT, in1 */
*/ */
case OP_ToBlob: { /* same as TK_TO_BLOB, in1 */ case OP_ToBlob: { /* same as TK_TO_BLOB, in1 */
pIn1 = &aMem[pOp->p1]; pIn1 = &aMem[pOp->p1];
memAboutToChange(p, pIn1);
if( pIn1->flags & MEM_Null ) break; if( pIn1->flags & MEM_Null ) break;
if( (pIn1->flags & MEM_Blob)==0 ){ if( (pIn1->flags & MEM_Blob)==0 ){
applyAffinity(pIn1, SQLITE_AFF_TEXT, encoding); applyAffinity(pIn1, SQLITE_AFF_TEXT, encoding);
@@ -1609,7 +1607,6 @@ case OP_ToBlob: { /* same as TK_TO_BLOB, in1 */
*/ */
case OP_ToNumeric: { /* same as TK_TO_NUMERIC, in1 */ case OP_ToNumeric: { /* same as TK_TO_NUMERIC, in1 */
pIn1 = &aMem[pOp->p1]; pIn1 = &aMem[pOp->p1];
memAboutToChange(p, pIn1);
sqlite3VdbeMemNumerify(pIn1); sqlite3VdbeMemNumerify(pIn1);
break; break;
} }
@@ -1626,7 +1623,6 @@ case OP_ToNumeric: { /* same as TK_TO_NUMERIC, in1 */
*/ */
case OP_ToInt: { /* same as TK_TO_INT, in1 */ case OP_ToInt: { /* same as TK_TO_INT, in1 */
pIn1 = &aMem[pOp->p1]; pIn1 = &aMem[pOp->p1];
memAboutToChange(p, pIn1);
if( (pIn1->flags & MEM_Null)==0 ){ if( (pIn1->flags & MEM_Null)==0 ){
sqlite3VdbeMemIntegerify(pIn1); sqlite3VdbeMemIntegerify(pIn1);
} }
@@ -1738,8 +1734,6 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */
pIn1 = &aMem[pOp->p1]; pIn1 = &aMem[pOp->p1];
pIn3 = &aMem[pOp->p3]; pIn3 = &aMem[pOp->p3];
memAboutToChange(p, pIn1);
memAboutToChange(p, pIn3);
flags1 = pIn1->flags; flags1 = pIn1->flags;
flags3 = pIn3->flags; flags3 = pIn3->flags;
if( (pIn1->flags | pIn3->flags)&MEM_Null ){ if( (pIn1->flags | pIn3->flags)&MEM_Null ){
@@ -2362,7 +2356,6 @@ case OP_Affinity: {
while( (cAff = *(zAffinity++))!=0 ){ while( (cAff = *(zAffinity++))!=0 ){
assert( pIn1 <= &p->aMem[p->nMem] ); assert( pIn1 <= &p->aMem[p->nMem] );
assert( memIsValid(pIn1) ); assert( memIsValid(pIn1) );
memAboutToChange(p, pIn1);
ExpandBlob(pIn1); ExpandBlob(pIn1);
applyAffinity(pIn1, cAff, encoding); applyAffinity(pIn1, cAff, encoding);
pIn1++; pIn1++;
@@ -2440,7 +2433,6 @@ case OP_MakeRecord: {
for(pRec=pData0; pRec<=pLast; pRec++){ for(pRec=pData0; pRec<=pLast; pRec++){
assert( memIsValid(pRec) ); assert( memIsValid(pRec) );
if( zAffinity ){ if( zAffinity ){
memAboutToChange(p, pRec);
applyAffinity(pRec, zAffinity[pRec-pData0], encoding); applyAffinity(pRec, zAffinity[pRec-pData0], encoding);
} }
if( pRec->flags&MEM_Zero && pRec->n>0 ){ if( pRec->flags&MEM_Zero && pRec->n>0 ){