diff --git a/manifest b/manifest index f9b12284f9..5fd4826eed 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Performance\soptimization\sfor\ssqlite3VdbeAddOp4(). -D 2016-12-07T20:09:51.583 +C The\suse\sP4_DYNAMIC\sin\splace\sof\sthe\sP4_MPRINTF\soperand\stype. +D 2016-12-07T20:22:31.737 F Makefile.in 7639c6a09da11a9c7c6f2630fc981ee588d1072d F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da @@ -456,10 +456,10 @@ F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c F src/util.c e68e8ced7328f22d2cf7b4c898c394a0de34cdf1 F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16 F src/vdbe.c 3986f226945b14b98eb26bd589de3705223c95ad -F src/vdbe.h c044be7050ac6bf596eecc6ab159f5dbc020a3b7 +F src/vdbe.h 1987921713ee2b948a79f0af192024065db095fb F src/vdbeInt.h 9b498d3cb52dc2efb53571fb8ae8e14cf298ce84 F src/vdbeapi.c ea4e2dc2213cc6bd7bee375a29a9b51c31b93ae0 -F src/vdbeaux.c 3afb187a9239e49d999a0f077f7c138a2799d074 +F src/vdbeaux.c 8378658e15a82b20fa49718f9204d1286b4fbc26 F src/vdbeblob.c f4f98ea672b242f807c08c92c7faaa79e5091b65 F src/vdbemem.c 1af2f14ab0f7004b364933ddcfc767fb880d4742 F src/vdbesort.c 91fda3909326860382b0ca8aa251e609c6a9d62c @@ -471,7 +471,7 @@ F src/wal.h 06b2a0b599cc0f53ea97f497cf8c6b758c999f71 F src/walker.c 91a6df7435827e41cff6bb7df50ea00934ee78b0 F src/where.c 6bbf9284f4f15a6fa48663d033870cc0d7f5ee66 F src/whereInt.h 2bcc3d176e6091cb8f50a30b65c006e88a73614d -F src/wherecode.c 9a3b1034191c9ea8ac14a5405564402f8b1114b2 +F src/wherecode.c e04ac8f24c3ac8621df6c3be3ac8c7d4fa893745 F src/whereexpr.c 87ecdf24beba4498e4380b31c4131febb0a6ceaa F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd @@ -1536,7 +1536,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 24574a15a336ffcb961334f84b56e9ab98490a79 -R fe9a80abf2b1a7e9a5d7d152eff8a8fe +P 04716c907bf9fc9b827e18fdc7b4e1069e201536 +R 5a971bdba4dcd12ecdc94b0ffc7d235f U drh -Z 7f586b627685f0d65f8b0e7af7753ff2 +Z 9cd8827513cba2f6d012918afdfa6fc2 diff --git a/manifest.uuid b/manifest.uuid index 4c1a459fe2..584cf35915 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -04716c907bf9fc9b827e18fdc7b4e1069e201536 \ No newline at end of file +3954f83798ed78527280c9db6360c62a5134b9ec \ No newline at end of file diff --git a/src/vdbe.h b/src/vdbe.h index ecb2b0e3f4..6567a980f9 100644 --- a/src/vdbe.h +++ b/src/vdbe.h @@ -110,22 +110,21 @@ typedef struct VdbeOpList VdbeOpList; #define P4_NOTUSED 0 /* The P4 parameter is not used */ #define P4_DYNAMIC (-1) /* Pointer to a string obtained from sqliteMalloc() */ #define P4_STATIC (-2) /* Pointer to a static string */ -#define P4_COLLSEQ (-4) /* P4 is a pointer to a CollSeq structure */ -#define P4_FUNCDEF (-5) /* P4 is a pointer to a FuncDef structure */ -#define P4_KEYINFO (-6) /* P4 is a pointer to a KeyInfo structure */ -#define P4_EXPR (-7) /* P4 is a pointer to an Expr tree */ -#define P4_MEM (-8) /* P4 is a pointer to a Mem* structure */ +#define P4_COLLSEQ (-3) /* P4 is a pointer to a CollSeq structure */ +#define P4_FUNCDEF (-4) /* P4 is a pointer to a FuncDef structure */ +#define P4_KEYINFO (-5) /* P4 is a pointer to a KeyInfo structure */ +#define P4_EXPR (-6) /* P4 is a pointer to an Expr tree */ +#define P4_MEM (-7) /* P4 is a pointer to a Mem* structure */ #define P4_TRANSIENT 0 /* P4 is a pointer to a transient string */ -#define P4_VTAB (-10) /* P4 is a pointer to an sqlite3_vtab structure */ -#define P4_MPRINTF (-11) /* P4 is a string obtained from sqlite3_mprintf() */ -#define P4_REAL (-12) /* P4 is a 64-bit floating point value */ -#define P4_INT64 (-13) /* P4 is a 64-bit signed integer */ -#define P4_INT32 (-14) /* P4 is a 32-bit signed integer */ -#define P4_INTARRAY (-15) /* P4 is a vector of 32-bit integers */ -#define P4_SUBPROGRAM (-18) /* P4 is a pointer to a SubProgram structure */ -#define P4_ADVANCE (-19) /* P4 is a pointer to BtreeNext() or BtreePrev() */ -#define P4_TABLE (-20) /* P4 is a pointer to a Table structure */ -#define P4_FUNCCTX (-21) /* P4 is a pointer to an sqlite3_context object */ +#define P4_VTAB (-8) /* P4 is a pointer to an sqlite3_vtab structure */ +#define P4_REAL (-9) /* P4 is a 64-bit floating point value */ +#define P4_INT64 (-10) /* P4 is a 64-bit signed integer */ +#define P4_INT32 (-11) /* P4 is a 32-bit signed integer */ +#define P4_INTARRAY (-12) /* P4 is a vector of 32-bit integers */ +#define P4_SUBPROGRAM (-13) /* P4 is a pointer to a SubProgram structure */ +#define P4_ADVANCE (-14) /* P4 is a pointer to BtreeNext() or BtreePrev() */ +#define P4_TABLE (-15) /* P4 is a pointer to a Table structure */ +#define P4_FUNCCTX (-16) /* P4 is a pointer to an sqlite3_context object */ /* Error message codes for OP_Halt */ #define P5_ConstraintNotNull 1 diff --git a/src/vdbeaux.c b/src/vdbeaux.c index 04dc9599f5..01430c6136 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -828,10 +828,6 @@ static void freeP4(sqlite3 *db, int p4type, void *p4){ break; } #endif - case P4_MPRINTF: { - if( db->pnBytesFreed==0 ) sqlite3_free(p4); - break; - } case P4_FUNCDEF: { freeEphemeralFunction(db, (FuncDef*)p4); break; diff --git a/src/wherecode.c b/src/wherecode.c index 00c50b1ec7..032c56fef3 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -1142,7 +1142,7 @@ Bitmask sqlite3WhereCodeOneLoopStart( sqlite3VdbeAddOp2(v, OP_Integer, nConstraint, iReg+1); sqlite3VdbeAddOp4(v, OP_VFilter, iCur, addrNotFound, iReg, pLoop->u.vtab.idxStr, - pLoop->u.vtab.needFree ? P4_MPRINTF : P4_STATIC); + pLoop->u.vtab.needFree ? P4_DYNAMIC : P4_STATIC); VdbeCoverage(v); pLoop->u.vtab.needFree = 0; pLevel->p1 = iCur;